【发布时间】:2015-02-19 22:52:49
【问题描述】:
我在使用带有 templateUrl 的隔离范围时遇到问题。
我的指令测试:
beforeEach(ngModule('app.directives'));
var scope, compile
beforeEach(inject(function($rootScope, $compile){
scope = $rootScope.$new();
compile = $compile;
}));
it('Replaces the element with the appropriate content', function(){
var element = compile('<download-detail-header></download-detail-header>')(scope);
expect(element.html()).to.equal('<p>Hello World!</p>');
});
我的指令:
function downloadDetailHeader() {
return {
restrict: 'EA',
scope: {},
template: '<p>Hello World!</p>'
// templateUrl: 'download_detail_header/views/downloadHeader.html'
}
}
下载Header.html
<p>Hello World!</p>
测试通过模板,似乎是因为 ng-isolate-scope 被添加到指令元素上的类中。使用提供的 templateUrl 测试没有通过,并且指令元素上没有放置 ng-isolate-scope。
谁能解释一下这个问题?
【问题讨论】:
-
是否至少加载了模板?这似乎是一个常见问题,请参阅 portlandwebworks.com/blog/… 或 stackoverflow.com/questions/15214760/…
-
这不是隔离范围的问题,而是
$templateCache的问题。唯一的解决方案是在测试设置中手动加载模板。
标签: javascript angularjs