Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/angularjs/20.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 AngularJS:-ngRoute和控制器http GET请求导致无限循环_Javascript_Angularjs_Ngroute - Fatal编程技术网

Javascript AngularJS:-ngRoute和控制器http GET请求导致无限循环

Javascript AngularJS:-ngRoute和控制器http GET请求导致无限循环,javascript,angularjs,ngroute,Javascript,Angularjs,Ngroute,我正在遵循AngularJS网站的教程,我遇到了一个障碍。我曾尝试使用console.log()和警报亲自调试该问题。似乎http请求的某些方面导致它在无限循环中调用ngRoute指令 我读过其他一些帖子,它们说这是因为服务器返回index.html作为对http请求的响应。我认为这是我的问题,但我不确定如何检查GET请求返回的内容 如何测试返回的内容并防止这种无限循环 main.js内容 var coffeeBeanApp = angular.module('coffeeBeanApp', [

我正在遵循AngularJS网站的教程,我遇到了一个障碍。我曾尝试使用console.log()和警报亲自调试该问题。似乎http请求的某些方面导致它在无限循环中调用ngRoute指令

我读过其他一些帖子,它们说这是因为服务器返回index.html作为对http请求的响应。我认为这是我的问题,但我不确定如何检查GET请求返回的内容

如何测试返回的内容并防止这种无限循环

main.js内容

var coffeeBeanApp = angular.module('coffeeBeanApp', [
    'ngRoute',
    'coffeeBeanControllers'
    ]);

coffeeBeanApp.config(['$routeProvider', function($routeProvider)
    {
        $routeProvider.
    when('/coffee', {
        templateUrl: 'partials/coffee-list.html',
        controller: 'CoffeeListCtrl'
    }).
    when('/coffee/:slug', {
        templateUrl: 'partials/coffee-detail.html',
        controller: 'CoffeeDetailCtrl'
    }).
    otherwise({
        redirectTo: '/coffee'
    });
}]);
controllers.js

var coffeeBeanControllers = angular.module('coffeeBeanControllers', []);

coffeeBeanControllers.controller('CoffeeListCtrl', function ($scope, $http) {
        $http.get('/api/coffee').success(function(data){$scope.beans = data;})
});

coffeeBeanControllers.controller('CoffeeDetailCtrl',
    ['$scope', '$routeParams', function($scope, $routeParams){
        $scope.slug = $routeParams.slug;
    }]);

请尝试以下方法以更好地调试:

$http.get('/api/coffee').then((function successCallback(response) {
       // this callback will be called asynchronously
       // when the response is available
       console.log(response); 
}, function errorCallback(response) {
       // called asynchronously if an error occurs
       // or server returns response with an error status.
       console.log(response);
});
或者,您也可以在成功回调中放置一个console.log(在$http中以红色标记为已弃用)


请尝试以下方法以更好地调试:

$http.get('/api/coffee').then((function successCallback(response) {
       // this callback will be called asynchronously
       // when the response is available
       console.log(response); 
}, function errorCallback(response) {
       // called asynchronously if an error occurs
       // or server returns response with an error status.
       console.log(response);
});
或者,您也可以在成功回调中放置一个console.log(在$http中以红色标记为已弃用)


谢谢你。在彻底阅读了文档并发现了不推荐的“success”方法之后,这就很有意义了。但我仍然有一个问题。即使有console.log和回调,我仍然会得到referenceloop,这会阻止任何值被记录到控制台。知道是什么导致了这种循环行为吗?你确定你的http调用是问题所在吗?也许你可以发表评论,看看行为是如何改变的。你能分享一下你收到的实际错误信息吗?嗯,你说得很对。我的http调用不是问题所在。我自己把它移到了一个控制器中,它工作得很好。我认为ngRoute是问题的根源。它似乎在不断地调用index.html,将我的应用程序的多个实例嵌套在另一个实例中。知道是什么引起的吗?谢谢你。在彻底阅读了文档并发现了不推荐的“success”方法之后,这就很有意义了。但我仍然有一个问题。即使有console.log和回调,我仍然会得到referenceloop,这会阻止任何值被记录到控制台。知道是什么导致了这种循环行为吗?你确定你的http调用是问题所在吗?也许你可以发表评论,看看行为是如何改变的。你能分享一下你收到的实际错误信息吗?嗯,你说得很对。我的http调用不是问题所在。我自己把它移到了一个控制器中,它工作得很好。我认为ngRoute是问题的根源。它似乎在不断地调用index.html,将我的应用程序的多个实例嵌套在另一个实例中。你知道是什么引起的吗?