【问题标题】:angular js - Change path but don't reload controllerangular js - 更改路径但不重新加载控制器
【发布时间】:2020-04-29 16:29:23
【问题描述】:

我在这里尝试了解决方案: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】:

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2015-02-06
    • 2020-02-28
    • 1970-01-01
    • 2014-08-28
    • 1970-01-01
    • 2022-01-10
    • 2013-02-05
    相关资源
    最近更新 更多