不要在Jasmine Karma Angular中使用$ compile [英] Don't work $compile in Jasmine Karma Angular
本文介绍了不要在Jasmine Karma Angular中使用$ compile的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
(function () {
'use strict';
angular
.module('app.widgets')
.directive('analiticsHere', analitics);
function analitics() {
var directive = {
template: '<div>hello world</div>'
};
return directive;
}
})();
创建简单的指令. 蚂蚁尝试对其进行测试.
Create simple directive. Ant try to test it.
inject(function($compile, $rootScope, $templateCache){
compile = $compile;
scope = $rootScope.$new();
template = $templateCache.get('scripts/widgets/templates/Analytics.html');
console.log(template);//return nothing
var element = angular.element('<div analitics-here></div>');
var compiledElement = compile(element)(scope);
console.log('compiledElement'); //return <div analitics-here="" class="ng-scope"></div>
});
如果我在指令中使用模板,请不要添加模板代码. 但是ngHtml2JsPreprocessor从我的任何html文件中创建html.js.
Don't added template code if i use template in directive. But ngHtml2JsPreprocessor create html.js from any my html files.
如何使其工作?有任何想法吗?
How make it work? Any ideas?
推荐答案
尝试以下代码
inject(function($injector){
compile = $injector.get("$compile");
scope = $injector.get("$rootScope").$new();
template =$injector.get("$templateCache").get('scripts/widgets/templates/Analytics.html');
console.log(template);
var element = angular.element('<div analitics-here></div>');
var compiledElement = compile(element)(scope);
console.log('compiledElement'); class="ng-scope"></div>
});
这篇关于不要在Jasmine Karma Angular中使用$ compile的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文