【问题标题】:Is it possible to check if the current route change is a redirect rule?是否可以检查当前路由更改是否为重定向规则?
【发布时间】:2014-11-12 12:46:36
【问题描述】:

我创建了一个角度模块,它使用当前的 $location.path 来动态加载内容。我这样设置模块配置:

var app = angular.module('App',['ngRoute']).
config(
    ['$routeProvider','$locationProvider','$sceProvider'],
    function($routeProvider,$locationProvider,$sceProvider){
        $routeProvider.
            otherwise({
                templateUrl: 'views/_view.html',
                controller: 'ViewCtr',
                resolve: {
                    load: function(dataFactory,$route,$location){
                        return dataFactory.load($location.path());
                    }
                }
            });
        $locationProvider.html5Mode(true);
        $sceProvider.enabled(false);
});

虽然当我设置 $scope.$on('$routeChangeStart') 以在内容加载时添加一些动画时,它工作得很好,它会触发路线更改两次。我相信这是因为我将 routeProider 设置为“否则”并且每次都会重定向。

如果我错了,您能否纠正我或告诉我是否以及如何区分真正的路线更改和重定向?谢谢。

【问题讨论】:

    标签: angularjs routes route-provider


    【解决方案1】:

    切换到使用 $routeChangeSuccess 而不是 $routeChangeStart。我还会研究 ng-animate (https://docs.angularjs.org/api/ngAnimate),因为它可能比你监听 routeChanges 处理得更好。

    【讨论】:

    • 唯一的问题是我想要显示两个动画。一个在路由更改开始时,另一个在成功或错误时。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-03-15
    • 2021-02-28
    • 1970-01-01
    • 2015-01-19
    • 2017-10-29
    相关资源
    最近更新 更多