10 $digest() достигнуты итерации. Aborting! при использовании $locationProvider.html5Mode(true);
Я использую Angular.js на IE8
,
Я собираюсь: "10 $digest() iterations reached. Aborting!"
Ошибка выполнения при использовании$locationProvider.html5Mode(true);
"на моем контроллере.
Мой код:
angular.module('MyApp', [], function ($routeProvider, $locationProvider) {
$routeProvider.when('/Get', {
templateUrl: 'Template/T1.html',
controller: RouteCtrl
});
$routeProvider.when('/GetT2/T2', {
templateUrl: 'Template/T2.html',
controller: RouteCtrl
});
$locationProvider.html5Mode(true);
});
function MainCntl($scope, $route, $routeParams, $location) {
$scope.$route = $route;
$scope.$location = $location;
$scope.$routeParams = $routeParams;
$scope.$location.path('/Get');
}
function RouteCtrl($scope, $route) {
$scope.params = $route;
}
ОБНОВИТЬ:
T1 и T2 не содержат ничего, связанного с угловым.
T1.html:
<h1>T1</h1>
<p>T1</p>
T2.html:
<h1>T2</h1>
<p>T2</p>
Вот где я использую свой контроллер:
<div id="content" ng-controller="MainCntl">
<div ng-view></div>
</div>
2 ответа
Я не знаю, насколько это актуально для вашей проблемы, но у нас были те же симптомы, также из режима html5. Мы были вручную загружены, а также во время этого процесса добавления class="ng-app"
к элементу HTML. Это вызвало запуск двух угловых экземпляров, один из которых мы настроили (с включенным html5mode), а другой - с настройками по умолчанию.
Таким образом, два экземпляра будут бороться за содержание $location
и это никогда не достигнет равновесия.
Решение состояло в том, чтобы гарантировать, что элемент html является "нетронутым", когда мы загружаем вручную.
Примечание: мы используем require.js, и это стало особенно заметно с асинхронной загрузкой элементов.
Я предполагаю, что вы где-то попали в бесконечный цикл.
Я собираюсь сделать некоторые предположения, потому что нет HTML-кода для меня, чтобы увидеть, как размещаются контроллеры, но это должно дать вам представление о том, что нужно искать.
Я собираюсь предположить, что templateUrl: 'Template/T1.html',
содержит MainCntl
,
На странице загрузки ваш $scope.$location.path('/Get');
вызывается внутри MainCntl
,
Такая ситуация может вызвать цикл - каждый раз, когда загружается страница, вы загружаете контроллер, который меняет местоположение на ту же страницу, которая загружает контроллер... и т. Д. И т. Д.
10 $digest() iterations reached. Aborting!
происходит от таких петель.