我使用$ compile服務遇到了一個非常奇怪的情況。我試圖編譯一個我從後臺使用我的控制器獲得的模板。Angular的編譯不起作用
這裏是JS:
angular.module('app', []);
angular.module('app').controller('AC', ['HtmlProcessor', function Actrl(HtmlProcessor) {
this.abc = 'Hello!';
this.do = function() {
alert(HtmlProcessor.getHTML(this));
};
}]);
angular.module('app').service('HtmlProcessor', ['$compile', function ($compile) {
this.getHTML = function (scope) {
return $compile('<p>{{ abc }}</p>')(scope).html();
};
}]);
這裏是HTML:
<!DOCTYPE html>
<html ng-app="app">
<head>
<script src="//ajax.googleapis.com/ajax/libs/angularjs/1.2.26/angular.min.js"></script>
<meta charset="utf-8">
<title>JS Bin</title>
</head>
<body ng-controller="AC as ac">
<button ng-click="ac.do()">Compile!</button>
</body>
</html>
所以,問題是,當我打電話ac.do()
我得到一個錯誤(在角的textInterpolateFn)和模板未編譯。我究竟做錯了什麼?
是的,你是對的!我後來在解決問題的同時得到了它。 – 2014-12-03 11:53:23