2017-08-30 48 views
0

我試圖重現的想法是從控制器設置角度指令('ng-show')。將AngularJS指令設置爲來自控制器的DOM節點

我嘗試做了下:

var node = `<div ng-show="this.length > 5">...</div>`; 
 
var child = document.createElement('span'); 
 
child.innerHTML = node; 
 
document.querySelector('.container').appendChild(child);

它是一個被添加到DOM樹之前設置指令對DOM節點有道?

+1

您需要使用$ compile – RahulB

+0

來編譯節點變量。它不包括大小寫,當長度是從父組件綁定時。 你能建議這種情況下的實現嗎? – SashaSemanyuk

回答

0

您需要使用AngularJS的$compile服務與角指令動態添加HTML在HTML頁面這樣

app_module.controller('appController', function ($scope, $compile) { 
    var node = `<div ng-show="this.length > 5">...</div>`; 
    var child = document.createElement('span'); 
    child.innerHTML = node; 
    $compile(document.querySelector('.container').appendChild(child))($scope); 
}); 

$compile服務將重新編譯AngularJS模板和檢測新增ng-show

+1

這並不回答這個問題,如果這是一個正確的方法來做到這一點,只是一個答案,你如何做到這一點... ... – MrWook

相關問題