角js-更改路径但不重新加载控制器

问题描述 投票:0回答:1

我已经在这里尝试解决方案: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]);
    };
}])

但是我将其设置为的路径被消耗掉并恢复为原来的样子。

angularjs ngroute
1个回答
0
投票

ngRoute路由器的默认行为是,当路径更改并且新的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事件在根作用域上广播(无需重新加载路由)。

© www.soinside.com 2019 - 2024. All rights reserved.