您好我绑定了一些HTML元素。看看下面的代码
<DIV ng-bind-html-unsafe="myHTML"></DIV>
控制器代码是
$scope.myHTML="<DIV ng-click="myFunc()"></DIV>"
$scope.myFunc= function(){
alert("TEST");
}
这里我的html正确加载。当我点击div时,我无法收到警报。
答案 0 :(得分:0)
您的代码中存在语法错误:
$scope.myHTML="<DIV ng-click="myFunc()"></DIV>"
您应该在myFunc()
周围使用单引号,如下所示:
$scope.myHTML="<DIV ng-click='myFunc()'></DIV>"
答案 1 :(得分:0)
ng-bind-html-unsafe
不支持指令。我们必须以某种方式编译绑定的html。
尝试通过编写指令来编译它:
app.directive("compile",function($compile,$timeout){
return {
priority:-1,
link:function(scope, element, attrs) {
$timeout(function(){
$compile(element.contents())(scope);
});
}
}
});
使用它:
<div ng-bind-html-unsafe="myHTML" compile></div>
另一种解决方案是编写我们自己的ng-bind-html
app.directive("myNgBindHtml",function($compile){
return {
link:function(scope, element, attrs) {
scope.$watch(attrs.myNgBindHtml,function(value){
element.html(value);
$compile(element.contents())(scope);
})
}
}
});