角度 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 路由器的默认行为是在路径更改且新 URL 映射到当前路由时重新加载ngView

如果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

最新更新