当我在 Internet Explorer 10 中查看代码时,我收到以下错误(它不一定以标准模式呈现,由于页面的服务方式,这超出了我的控制范围)。
http://errors.angularjs.org/1.2.28/$rootScope/infdig
这是我使用的路由:
phoneApp.config(['$routeProvider', '$locationProvider',
function($routeProvider, $locationProvider){
$routeProvider
.when('/sap.com~home~phonelist/pages/index.html', {
templateUrl: '/sap.com~home~phonelist/pages/landing.html',
controller: 'SearchController'
})
.when('/sap.com~home~phonelist/pages/', {
templateUrl: '/sap.com~home~phonelist/pages/landing.html',
controller: 'SearchController'
})
.when('/sap.com~home~phonelist/pages/singleEmployee/:id', {
templateUrl: '/sap.com~home~phonelist/pages/singleEmployee.html',
controller: 'SingleEmployeeController'
});
$locationProvider.html5Mode(true);
}]);
我的索引中的基本 href:<base href="/" />
也是页面中唯一的重复:
<tr ng-repeat="employee in filteredEmployees = (employees | filter:search.currentFilter | orderBy:user.ordering:reverse)">
<td> <a class="fakeLink" href="singleEmployee/{{$index}}">{{ employee.name }}</a></td>
<td class="location">{{ employee.userID }}</td>
<td class="district">{{ employee.department }}</td>
<td class="jobTitle">{{ employee.jobTitle }}</td>
<td class="emailAddress">{{ employee.email }}</td>
<td class="workPhone"><a class="fakeLink" href="tel:{{employee.phone}}">{{ employee.phone }}</a></td>
</tr>
该页面在 Chrome 中加载正常,但当我尝试在 IE 中打开它时,没有任何加载。我已经检查了 ng-repeat 上的 html,以确保我没有调用创建新数组的方法。当我使用开发人员工具检查时,基本 href 似乎被无休止地调用。关于可能导致此错误的原因有什么想法吗?
最佳答案
这是两个问题的组合。第一,改变
$locationProvider.html5Mode(true);
至
$locationProvider.html5Mode(false);
评论中的贝蒂是正确的,IE 在旧版本中使用此方法存在问题。除此之外,您还需要为 /
创建一条新路由。如果您在启动 Angular 路线时遇到问题,除了 when
之外,您还可以调用 otherwise
来设置路线。 angular documentation 中有关于这种路由风格的更多信息。 .
关于javascript - Angular 路由导致 IE 死循环,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/30877527/