Karma编译的元素是空的

时间:2016-05-06 20:52:09

标签: javascript angularjs unit-testing jasmine karma-runner

我有一个带有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>');
    });

这就像元素没有被消化或填充。在编译和消化之前具有相同的状态。

1 个答案:

答案 0 :(得分:0)

好的,这是我的错。

我认为将模板加载为模块足以编译指令的元素。

我做了这样的事情来编译模板。

aboutTemplate = $templateCache.get('templates/about.html');
scope = $rootScope;
scope.appVersion = '2.0.0.1';
ele=$compile(aboutTemplate)(scope);
$rootScope.$digest();

这是有效的,现在我能够获得编译的指令,模板,在这种情况下。

感谢。