Don't work $compile in Jasmine Karma Angular

家住魔仙堡 提交于 2019-12-12 02:52:09

问题


    (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>
        });

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?


回答1:


Try following code

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>
    });


来源:https://stackoverflow.com/questions/31827101/dont-work-compile-in-jasmine-karma-angular

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!