Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/375.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 更改url时Angularjs无限循环_Javascript_Angularjs_Location_Router - Fatal编程技术网

Javascript 更改url时Angularjs无限循环

Javascript 更改url时Angularjs无限循环,javascript,angularjs,location,router,Javascript,Angularjs,Location,Router,角度和角度路线有问题。 不知道为什么,如果我在应用程序中导航,一切正常。但是,如果我直接从nav更改哈希url(或者创建一个history.back),所有的程序都会崩溃,因为它试图无限地解析 这是我的路由器: myApp.conf ig(['$routeProvider', function($routeProvider) { $routeProvider. when('/news', { templateUrl:

角度和角度路线有问题。 不知道为什么,如果我在应用程序中导航,一切正常。但是,如果我直接从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: '/'
            });
    }
]);
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路线。这稍微好一点,但现在我有一个摘要无限循环。好消息:不会使导航器崩溃。坏消息:仍然不可能改变历史。