2
我試圖設置一個指令,當它的關聯元素被點擊時,$編譯一段HTML代碼並將結果添加爲點擊元素的子元素。
這裏是我的JS:
var app = angular.module('plunker', []);
app.controller('MainCtrl', function($scope) {
$scope.name = 'World';
})
.directive('compileTest', function($compile) {
return {
link: function(scope, element, attrs) {
element.bind('click', function() {
var content = $compile('<div>Hello {{name}}</div>')(scope);
element.append(content);
});
}
}
});
在這種情況下,{{名}}是不是永遠插值。但是,如果我移除click監聽器並在調用鏈接時立即執行$ compile()和append(),則插值將起作用。我誤解了什麼?我想上述應該工作。
這裏的普拉克:http://plnkr.co/edit/YEGCq6
謝謝!
如果你只是想數據綁定,並且不想鏈接指令,使用$插值服務。它將在沒有$ apply語句的情況下工作。 Doc:http://docs.angularjs.org/api/ng.$interpolate – Oliver