2017-08-30 11 views
0

私が再現しようとしているアイデアは、コントローラから角度ディレクティブ( 'ng-show')を設定することです。コントローラからDOMノードにAngularJSディレクティブを設定する

私は次のことをしよう:それは1 DOMツリーに追加される前に、DOMノード上のディレクティブを設定するための適切な方法が

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

ですか?あなたは$compileサービスがAngularJSテンプレートを再コンパイルして、新しく追加されたng-showを検出します。この

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); 
}); 

のように動的にHTMLページに角度指令にHTMLを追加するためにAngularJSの$compileサービスを使用する必要が

+1

$ compile – RahulB

+0

を使用してノード変数をコンパイルする必要があります。長さが親コンポーネントからのバインディングの場合は、大文字と小文字が区別されません。 このケースの実現を提案できますか? – SashaSemanyuk

答えて

0

+1

これは適切な方法であれば質問には答えません。あなたのやり方に対する答えです... – MrWook

関連する問題