你好,我已經綁定了一些HTML元素。看看下面的代碼如何獲得點擊事件
<DIV ng-bind-html-unsafe="myHTML"></DIV>
在控制器代碼
$scope.myHTML="<DIV ng-click="myFunc()"></DIV>"
$scope.myFunc= function(){
alert("TEST");
}
這裏我的HTML是否正確裝入。當我點擊div時,我無法獲得警報。
你好,我已經綁定了一些HTML元素。看看下面的代碼如何獲得點擊事件
<DIV ng-bind-html-unsafe="myHTML"></DIV>
在控制器代碼
$scope.myHTML="<DIV ng-click="myFunc()"></DIV>"
$scope.myFunc= function(){
alert("TEST");
}
這裏我的HTML是否正確裝入。當我點擊div時,我無法獲得警報。
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綁定,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);
})
}
}
});
你在你的代碼中的語法錯誤:
$scope.myHTML="<DIV ng-click="myFunc()"></DIV>"
你應該用單引號括起來myFunc()
,像這樣:
$scope.myHTML="<DIV ng-click='myFunc()'></DIV>"
試過沒有工作 –
它給了我下面的錯誤 未捕獲的錯誤:選擇不執行 –
包括JQUERY之前AngularJs會做的伎倆 –
是在有角的js任何解決方案。 我試圖以以下格式對它進行編譯 $ scope.myHTML = $ compile($ scope.myHTML)($ scope); 它給我輸出的div如下 [[object HTMLDivElement]] –