Я следую учебным пособиям с сайта AngularJS, и я попал в ловушку. Я попытался самостоятельно отладить проблему, используя console.log() и оповещения. Похоже, что что-то о HTTP-запросе заставляет его вызывать директивы ngRoute в бесконечном цикле.AngularJS: - ngRoute и контроллер HTTP GET-запрос, вызывающий бесконечный цикл
Я прочитал несколько других сообщений, которые говорят, что это потому, что сервер возвращает 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;
}]);
Thanks mentat. Это имеет большое значение теперь, внимательно прочитав документацию и обнаружив устаревший метод «успеха». Тем не менее, у меня все еще есть проблема. Даже с console.log и обратными вызовами на месте я все еще получаю referenceloop, который предотвращает регистрацию любых значений на консоли. Любая идея, что вызывает это поведение цикла? – user2866975
Вы уверены, что ваш вызов по электронной почте является проблемой? возможно, вы можете прокомментировать и посмотреть, как меняется поведение. и можете ли вы поделиться фактическим сообщением об ошибке, которое вы получаете? – mentat
ментат, ты совершенно прав. Мой HTTP-вызов не является проблемой. Я переместил его в контроллер самостоятельно, и он работает отлично. Я думаю, что ngRoute вызывает проблему. Кажется, он вызывает index.html, постоянно вставляя несколько экземпляров моего приложения друг в друга. Любая идея, что может быть причиной этого? – user2866975