Javascript Internet Explorer 8中的角度UI路由器嵌套视图
在IE8中使用嵌套视图时,角度UI路由器显示有问题。它似乎可以深入2层,然后在控制台中出现以下错误:Javascript Internet Explorer 8中的角度UI路由器嵌套视图,javascript,angularjs,internet-explorer-8,angular-ui-router,Javascript,Angularjs,Internet Explorer 8,Angular Ui Router,在IE8中使用嵌套视图时,角度UI路由器显示有问题。它似乎可以深入2层,然后在控制台中出现以下错误: Error: [$compile:tplrt] http://errors.angularjs.org/1.3.0-beta.5/$compile/tplrt?p0=message&p1=<ui-view class=ng-scope> 这只发生在IE8中,在IE9+和其他现代浏览器中显示良好。它应该与IE8兼容 编辑:我发现了这个问题。问题是由于子状态(user.list
Error: [$compile:tplrt] http://errors.angularjs.org/1.3.0-beta.5/$compile/tplrt?p0=message&p1=<ui-view class=ng-scope>
这只发生在IE8中,在IE9+和其他现代浏览器中显示良好。它应该与IE8兼容
编辑:我发现了这个问题。问题是由于子状态(user.list.edit和user.list.add)的HTML中包含的指令造成的。此指令配置了“replace:true”,这导致IE8抛出模板错误。该指令也在父州使用,但没有在那里引起问题。编辑指令以不要求替换解决了问题。希望这能帮助其他遇到同样问题的人。从我发现的情况来看,这个错误也可能是由于模板DOM树深处的标记关闭不正确造成的,例如:
<div>
<div>
<div></strong> <!-- ERROR! -->
</div>
</div>
使用类似的方法防止在构建时发生这种情况:
.state('user', {
abstract: true,
url: '/user',
templateUrl: '/admin/user/user.html',
controller: 'userController'
})
.state('user.list', {
url: '',
views: {
'filters': { templateUrl: '/admin/user/user.filter.html',
controller: 'userFilterController' },
'results': { templateUrl: '/admin/user/user.list.html',
controller: 'userListController' },
'details': { template: '<ui-view/>'}
}
})
.state('user.list.add', {
url: '/add',
templateUrl: '/admin/user/user.add.html',
controller: 'userAddController'
})
.state('user.list.edit', {
url: '/{userId}',
templateUrl: '/admin/user/user.edit.html',
controller: 'userEditController'
});
<div>
<div>
<div></strong> <!-- ERROR! -->
</div>
</div>