我在IE8上使用angular.js.
我得到了:“10 $digest()迭代达到了.堕胎!”使用“$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>
最佳答案 我不知道这对你的问题有多重要,但我们也有同样的症状,也来自html5模式.我们手动引导,并且在此过程中将class =“ng-app”添加到html元素.这导致两个角度实例运行,一个是我们配置的(启用了html5mode),另一个是默认设置.
因此,这两个实例将争夺$location的内容,它永远不会达到平衡.
解决方案是确保在我们手动引导时html元素是“原始的”.
注意:我们使用的是require.js,它在异步加载元素时变得特别明显.