Javascript 更改url时Angularjs无限循环
角度和角度路线有问题。 不知道为什么,如果我在应用程序中导航,一切正常。但是,如果我直接从nav更改哈希url(或者创建一个history.back),所有的程序都会崩溃,因为它试图无限地解析 这是我的路由器: myApp.confJavascript 更改url时Angularjs无限循环,javascript,angularjs,location,router,Javascript,Angularjs,Location,Router,角度和角度路线有问题。 不知道为什么,如果我在应用程序中导航,一切正常。但是,如果我直接从nav更改哈希url(或者创建一个history.back),所有的程序都会崩溃,因为它试图无限地解析 这是我的路由器: myApp.conf ig(['$routeProvider', function($routeProvider) { $routeProvider. when('/news', { templateUrl:
ig(['$routeProvider',
function($routeProvider) {
$routeProvider.
when('/news', {
templateUrl: 'partials/news.html',
controller: 'NewsController',
resolve: { load: function(DataService) { return DataService.load(); } }
}).
when('/', {
templateUrl: 'partials/accueil.html',
controller: 'HomeController',
resolve: { load: function(DataService) { return DataService.load(); } }
}).
otherwise({
redirectTo: '/'
});
}
]);
load()是一个运行良好的服务,除了我的问题
load: function () {
console.log("DataService.load()");
console.log($location.path());
if(this.deferred !== null)
this.deferred.resolve();
this.newPage = true;
this.deferred = $q.defer();
if($location.path() == this.previousUrl) {
this.deferred.resolve();
}
else {
this.previousUrl = $location.path();
// If it's first load, do it directly without wait $interval
if (this.firstLoad) {
this.checkDatas();
}
// All is already done (asynchronous loading data)
this.loadCheck();
}
alert("DataService loaded");
return this.deferred.promise;
}
我发现很多人都有这类问题(或更多的消化问题),但没有解决办法。我可以看到我的alert()无限地弹出,它一次又一次地尝试解决它
Thx for ideas创建一个plubker进行调试。不要让我们在头上调试。使用angular ui router而不是ngRoute,这是更好的路由解决方案,因为它处理嵌套视图/状态,所以您可以添加一个顶级抽象状态并在那里解析加载,并且您不会被迫解析两种状态下的加载。您可以尝试一下,并添加相应的新问题,如果有的话。Thx的提示。我改成了角度ui路线。这稍微好一点,但现在我有一个摘要无限循环。好消息:不会使导航器崩溃。坏消息:仍然不可能改变历史。