我正在使用Karma和Mocha構建單元測試。測試我的指令,並使用html2js(它將htmls轉換爲$ 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
}));
...
然而,如果我使用範圍= $ rootScope $新的(),該element.html()將返回一個空字符串
有任何想法嗎?
千恩萬謝 利奧爾
您需要提供所有的代碼。測試中其他地方是否定義了元素? thumb是一個指令嗎? – matsko