更改url时Angularjs无限循环

时间:2014-05-06 06:50:38

标签: javascript angularjs location router

角度和角度路线出了问题。 不知道为什么,如果我在我的应用程序中导航,一切正常。但是,如果我直接从nav更改哈希URL(或创建history.back)所有崩溃,因为它试图无限地解决。

这是我的路由器: myApp.conf

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: '/'
            });
    }
]);

DataService.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;
    }

我发现很多人有这种问题(或更多的消化问题),但没有解决方案。我可以无限制地看到我的警报()弹出,并试图一次又一次地解决它......

提出想法

0 个答案:

没有答案