2017-01-18 8 views
1

要素を動的に作成するコード(xおよびparentDiv)があります。AngularJSで要素を動的に作成した後のディレクティブのバインド

var x = document.createElement('myTag'); 
parentDiv.appendChild(x); 

そして、私はこのようになりますディレクティブがあります。

.directive("myTag", function($compile) { 
    return { 
     restrict: "E", 
     replace: true, 
     template: "<span><img src='something/url/img.png'></img></span>" 
    } 
}) 

私はディレクティブでそのコードにmytagというタグを置き換えることができますどのように? AngularJS以外のコードをその範囲で扱えるように$ compileを使用していますが、どこに置くべきか分かりません。

+0

この要素はどこに作成されていますか?アンケートの外に?コントローラーで?工場では? – devqon

+0

@FealroneAlajas、[私の答え](http://stackoverflow.com/a/41713370/2545680)助けましたか? –

+0

@ Maximus hi。はい。申し訳ありません、私は今日は少しだったが、それは魅力のように動作します。ありがとう! :D –

答えて

0

実は、あなたの要素を追加する前compileを使用する必要があります。

var childScope = scope.$new(); 
var x = document.createElement('myTag'); 
var compiled = $compile(x)(childScope); 
parentDiv.appendChild(compiled); 

$compileサービスは、テンプレートフェッチします:

<span><img src='something/url/img.png'></img></span> 

をしてxで参照DOM要素内に置きます。

関連する問題