我正在使用 Karma 和 Mocha 构建单元测试。测试我的指令,并使用 html2js(它将 html 转换为 $templateCache 中的缓存字符串)。有趣的是,在我的测试中使用 $rootScope.$new() 时,模板 html 不会进入指令。这是代码:
it('should show a thumb name', function() {
inject(function($compile, $rootScope,$controller) {
var scope = $rootScope;//.$new() ($new not working. Why?)
var linkFn = $compile('<thumb></thumb>');
var element = linkFn(scope);
scope.$digest(); // <== needed so that $templateCache will bring the html
// (that html2js put in it)
console.log(element.html());// correctly returns thumb's directive templateUrl content
}));
...
但是,如果我使用 scope = $rootScope.$new(),element.html() 将返回一个空字符串
有任何想法吗?
非常感谢 Lior