我试图在AngularJS中的服务中编译模板,但是当我使用$ compile服务时,我一直收到这个错误:
text.indexOf is not a function
我尝试了一些不同的方法,但我似乎无法获得有效的解决方案。但是有一个工作小提琴:http://jsfiddle.net/DUM7t/所以我不知道为什么它会破裂。提前谢谢!
编辑: 如果我将剪切内容放在我的应用程序的运行块中,它也能正常工作。
服务:
(function () {
'use strict';
angular
.module('app')
.service('PrintUtilService', PrintUtilService);
PrintUtilService.$inject = ['$rootScope', '$timeout', '$interpolate', '$templateRequest', '$uibModal', 'APP', 'FORMATS'];
/* @ngInject */
function PrintUtilService($rootScope, $timeout, $compile, $templateRequest, $uibModal, APP, FORMATS) {
var service = {
printTemplate: printTemplate
};
return service;
function printTemplate(){
var data = ["1","2"];
var html =
'<div>' +
'<ul>' +
'<li ng-repeat="score in data">{{score}}</li>' +
'</ul>'+
'</div>';
var el = angular.element(html);
$rootScope.data = data;
var result = $compile(el)($rootScope); // error on this line
$timeout(function() {
console.log(el.html());
alert(el.html());
});
}
}
})();
答案 0 :(得分:0)
var scope = $rootScope.$new();
scope.data = data;
var result = $compile(el)(scope);