Javascript AngularJS:-ngRoute和控制器http GET请求导致无限循环
我正在遵循AngularJS网站的教程,我遇到了一个障碍。我曾尝试使用console.log()和警报亲自调试该问题。似乎http请求的某些方面导致它在无限循环中调用ngRoute指令 我读过其他一些帖子,它们说这是因为服务器返回index.html作为对http请求的响应。我认为这是我的问题,但我不确定如何检查GET请求返回的内容 如何测试返回的内容并防止这种无限循环 main.js内容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', [
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,将我的应用程序的多个实例嵌套在另一个实例中。你知道是什么引起的吗?