2016-07-21 4 views
0

内生のHTMLで角度ディレクティブを使用して、例えば:直接HTMLドキュメントに追加したとき、それは正常に動作として私は<code>ajax</code>応答を取得した後<code>html</code>を作成していますjqueryの

var html = ''; 
html = '<div ng-click="deleteRecord($event)">delete</delete>'; 
$('.main).append(html); 

しかしng-clickディレクティブはどこに動作しません。私は角がDOMとどのように結びついているかをあまり理解していません。

htmlからjqueryまでを追加するときにこの作業を行うことができるかどうかを理解するためのサポートが必要ですか?

ありがとうございました。

答えて

0

要素にHTMLを追加する代わりに、デフォルトのAngularライブラリに含まれているbindHtmlディレクティブを使用できます。

<div data-ng-bind-html="someHtml"></div> 

コントローラのsomeHtmlプロパティにHTML文字列を適用するだけで正常に動作します。 ngSanitize(または '$ sanitize')をコントローラに含めるようにしてください。これにより、損傷を与えるHTMLを挿入することができなくなります。

0

HTMLを挿入した後に$apply()に電話することができます。これにより、角度が強制的にバインディングを再ダイジェストします。

var html = ''; 
html = '<div ng-click="deleteRecord($event)">delete</delete>'; 
$('.main).append(html); 
$scope.$apply(); 
0

これを試してみてください:

$('.main').append($compile(html)($scope)); 
$scope.$apply(); 

はそれがお役に立てば幸いです。

PD:Angularを使用するときはjQueryを避けるようにします。

関連する問題