是否可以检查当前路由更改是否为重定向规则?

时间:2014-11-12 12:46:37

标签: angularjs routes route-provider

我创建了一个角度模块,它使用当前的$ 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设置为“否则”并且每次都重定向。

如果我错了,你可以纠正我吗?或者告诉我是否以及如何区分真正的路线变更和重定向?谢谢。

1 个答案:

答案 0 :(得分:0)

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