我有一个带有templateUrl语句的简单指令,我使用ng-html2js加载模板。我编译了元素并调用$digest
方法,但元素为空或html()
为''
。
这是测试:
var scope, element;
beforeEach(module('mainApp'));
beforeEach(module('templates/about.html'));
beforeEach(inject(function($rootScope, $compile) {
element = angular.element('<about-modal></about-modal>');
scope = $rootScope;
$compile(element)(scope);
scope.$digest();
}));
it('About widget is loaded', function () {
expect(element.html()).toEqual('<some html>');
});
这就像元素没有被消化或填充。在编译和消化之前具有相同的状态。
答案 0 :(得分:0)
好的,这是我的错。
我认为将模板加载为模块足以编译指令的元素。
我做了这样的事情来编译模板。
aboutTemplate = $templateCache.get('templates/about.html');
scope = $rootScope;
scope.appVersion = '2.0.0.1';
ele=$compile(aboutTemplate)(scope);
$rootScope.$digest();
这是有效的,现在我能够获得编译的指令,模板,在这种情况下。
感谢。