[英]Dynamic custom Angular directive/$compile not working with .innerHTML()
我有一個計時器應用程序。 當倒數計時器到達一定數量后,計時器將停止和div
標簽將另一內創建div
標簽使用.innerHTML()
該div
標簽包含一個名為dynamic
的自定義Angular指令。 此指令應$compile
帶有button
標簽的模板$compile
,該button
標簽在單擊時將調用Angular控制器timerControl
的函數。
當前發生的情況是計時器啟動並在我的timerControl
控制器中觸發以下if
語句...
if(time_until_break-- < 0){
document.getElementById('test').innerHTML= '<div dynamic></div>'
}
它應通過以下指令運行,並在以下指令的每個指令后向html附加一個button
...
grindModule.directive("dynamic", function($compile){
return{
link: function(scope, element){
var template = "<button ng-click='timerControl.resetTimer()'>Keep Working</button>";
var linkFn = $compile(template);
var content = linkFn(scope);
element.append(content);
}
}
});
但是相反,它僅將以下內容附加到HTML ...
<div dynamic></div>
是什么賦予了?
我似乎無法找到堆棧溢出任何東西,告訴你如何將一個鏈接HTML
元素到$scope
之后,或者說元素附加到前DOM
使用.innerHTML()
當您手動添加標記時,例如
document.getElementById('test').innerHTML= '<div dynamic></div>'
您將繞過所有AngularJS代碼。 您應該這樣做:
angular.element("#test").html('<div dynamic></div>');
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.