Angularjs 如何获得点击事件
你好,我绑定了一些HTML元素。看看下面的代码Angularjs 如何获得点击事件,angularjs,ng-bind-html,Angularjs,Ng Bind Html,你好,我绑定了一些HTML元素。看看下面的代码 <DIV ng-bind-html-unsafe="myHTML"></DIV> 控制器中的代码是 $scope.myHTML="<DIV ng-click="myFunc()"></DIV>" $scope.myFunc= function(){ alert("TEST"); } 这里正确加载了我的html。当我单击div时,我无法获得警报。您的代码中有语法错误: $scope.myHTML="
<DIV ng-bind-html-unsafe="myHTML"></DIV>
控制器中的代码是
$scope.myHTML="<DIV ng-click="myFunc()"></DIV>"
$scope.myFunc= function(){
alert("TEST");
}
这里正确加载了我的html。当我单击div时,我无法获得警报。您的代码中有语法错误:
$scope.myHTML="<DIV ng-click="myFunc()"></DIV>"
ng bind html不安全不支持指令。我们必须以某种方式编译绑定的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>
它给了我以下错误未捕获错误:选择器未实现在angular js中有任何解决方案。我试着将它转换成以下格式$scope.myHTML=$compile$scope.myHTML$scope;它在div上的give me输出如下[[object htmldevelment]@Shardul Pendse:我想出了一个可行的解决方案,我们必须编写另一个指令来编译它。您好@KhanhTO感谢您的解决方案。在我这边,我从数据库中获取数据,然后准备一个HTML字符串,然后绑定它。那么,当我控制台element.contents时是如何操作的;它是空白的。那么,有没有像回电话这样的解决方案??意思是在内容绑定之后,我们可以调用指令。@KhanhTO当我在您给出的示例中放置console.logelement.contents时,它打印一些对象是绑定的。我们怎么才能弄清楚呢?
<div ng-bind-html-unsafe="myHTML" compile></div>
app.directive("myNgBindHtml",function($compile){
return {
link:function(scope, element, attrs) {
scope.$watch(attrs.myNgBindHtml,function(value){
element.html(value);
$compile(element.contents())(scope);
})
}
}
});