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