angularjs - angular js - 更改路径但不重新加载控制器
问题描述
我在这里尝试了解决方案:https ://www.consolelog.io/angularjs-change-path-without-reloading/
app.run(['$route', '$rootScope', '$location', function ($route, $rootScope, $location) {
var original = $location.path;
$location.path = function (path, reload) {
if (reload === false) {
var lastRoute = $route.current;
var un = $rootScope.$on('$locationChangeSuccess', function () {
$route.current = lastRoute;
un();
});
}
return original.apply($location, [path]);
};
}])
但是我设置的路径只是被消耗并恢复到原来的样子。
解决方案
ngRoute 路由器的默认行为是ngView
在路径更改并且新 URL 映射到当前路由时重新加载。
如果该reloadOnSearch
选项设置为false
,ngRoute 将不会在仅或更改时重新加载路由:$location.search()
$location.hash()
app.config(function($routeProvider) {
$routeProvider.when("/foo", {
templateUrl: 'foo.html',
controller: 'fooController',
reloadOnSearch: false
});
})
该应用程序调用:
$location.hash({pageNumber: n});
在$routeUpdate
根范围内广播事件(无需重新加载路由)。1
推荐阅读
- excel - 仅用于子行的 Excel 数据透视表计算
- javascript - 如何创建一个带有 li 元素的 ol,这样如果我创建一个文本节点,它可以在 JS 的同一行添加有序数字
- r - R as.POSIXct 和 as.POSIXlt 4 月第一天的不同解析行为,R april 是在愚弄我吗?
- flutter - 无法在 appbar 中放置图像 Flutter web
- reactjs - 尝试更改我设置的 ReactJS 状态数组,但是当我去记录它时,它不会更新,直到我再次运行事件
- ios - 使用 sendToDevice 从 Firebase 功能发送到 iOS 设备时,如何使推送通知正常工作?
- c# - ASP.NET MVC & C#:更好的美元和美分数据输入
- amazon-web-services - AWS STS 使用案例和优势
- javascript - 如果页面上存在类,如何仅应用样式表?
- java - JLink 为 windows 生成一个空文件而不是一个 exe