我创建了一个角度模块,它使用当前的$ 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设置为“否则”并且每次都重定向。
如果我错了,你可以纠正我吗?或者告诉我是否以及如何区分真正的路线变更和重定向?谢谢。
答案 0 :(得分:0)
切换到使用$ routeChangeSuccess而不是$ routeChangeStart。我还会研究ng-animate(https://docs.angularjs.org/api/ngAnimate),因为它可能会更好地处理它,然后你会收听routeChanges。