2016-07-21 6 views
0

私は奇妙な問題があります。私はDOM要素へのadd addディレクティブをクリックしようとしています。クリックイベントでDOMにディレクティブを追加します。

var input = document.createElement("autocomplete"); 
angular.element(ev.target).append(input); 

ここで、ev.targetはマウスクリックのイベントです。私がコードを調べているときには、ディレクティブはそこにありますが、呼び出されることはありません。私が<autocomplete></autocomplete>のように外に追加している場合は、クリックせずにすべて動作します。角度のように見えません。

+0

これは奇妙なことではありません。 $ compileを使用してディレクティブを追加した後、DOMをコンパイルする必要があります。 – Ved

+0

あなたは '$ compile'を使ってその要素をコンパイルし、それをDOM内に追加する必要がありますか?現在あなたはそれをコンパイルしていない、それはディレクティブが初期化されていない.. –

答えて

1

$compilehereを参照してください。

は、テンプレートにHTML文字列またはDOMをコンパイルした後、一緒にスコープとテンプレート をリンクするために使用することができるテンプレート 関数を生成します。

これは、上記のように挿入する新しい要素のコンパイルとリンクを実行します(directiveTagをアクションに設定します)。

同様のコードの下に、使用方法を示します。

var newDirective = angular.element('<div directive-tag></div>'); 
element.append(newDirective); 
$compile(newDirective)($scope); 
関連する問題