AngularJS templateUrl未在Internet Explorer 7中加载模板
根据标题,当我在$routeProvider中使用templateUrl时,模板和控制器不会加载 在我的配置中,我有:AngularJS templateUrl未在Internet Explorer 7中加载模板,angularjs,internet-explorer-7,Angularjs,Internet Explorer 7,根据标题,当我在$routeProvider中使用templateUrl时,模板和控制器不会加载 在我的配置中,我有: .when('/thing/:thingId', { templateUrl: 'views/things.html', controller: 'ThingController' }) 如果我改成 .when('/thing/:thingId', { template: '<div>Hello you!</div>',
.when('/thing/:thingId', {
templateUrl: 'views/things.html',
controller: 'ThingController'
})
如果我改成
.when('/thing/:thingId', {
template: '<div>Hello you!</div>',
controller: 'ThingController'
})
.when('/thing/:thingId'{
模板:“你好!”,
控制器:“ThingController”
})
它起作用了。我使用的是AngularJS 1.2.2
我尝试过的想法:
从1.2版开始,AngularJS似乎不支持IE7。通过切换到AngularJS 1.1.5解决了此问题。对于AngularJS 1.2+版本,您需要为IE7及以下版本注入
$sce
并使用$sce.trustAsResourceUrl(“…”)
包装resourceUrl
,为您的指令提供以下内容:
...
templateUrl: $sce.trustAsResourceUrl('/Resource/That/YouTrust.html')
...
您可能还需要通过执行以下操作(如果您使用的是jQuery)来修改document.querySelector修补程序:
否则角度将在此处爆炸(从角度源):
还要确保您遵循了,特别是添加id=“ng app”
,而不是使用元素指令
完成所有这些,IE7可能会工作;)
编辑:修复引用URL在Plunker=>Plunker使用Angular=>hmmmm;构建时不起作用)angular docs站点在IE7中工作吗?不。这可能不是一个好迹象。我发现,当我开始在angular 1.2.27中使用ui路由器时,我必须更改为使用$sce.trustAsResourceUrl作为指令,以使IE7工作。
if (!document.querySelector)
{
document.querySelector = function (selector)
{
return $(selector).get(0);
};
}
var active = !!(document.querySelector('[ng-csp]') ||
document.querySelector('[data-ng-csp]'));