36

jQueryを使用してDOM操作(新しいHTMLの追加)を実行すると、AngularJSは新しいHTMLの変数を自動的に検出して、それらの値に置き換えません。例えば:

$scope.showSummary = function($event){

    $($event.currentTarget).html("<div>{{row}}</div>");

};

これは単純な例ですが、要素のHTMLを変更した後(この関数はによって呼び出されました)、コンテキスト/スコープでが意味するものではなく、ng-clickそれを出力します。{{row}}

4

2 に答える 2

66

インジェクト$compilehttp://docs.angularjs.org/api/ng.$compile)して、angularが新しいhtmlを認識できるように使用する必要があります。

$compile('<div>{{row}}</div')($scope).appendTo($event.currentTarget);

ただし、コントローラーでDOM操作を行うことは、角度を変えて眉をひそめます。コントローラでビジネスを処理し、ビューでビューを処理する必要があります。

ディレクティブを試して、やりたいことを実行してください。http://docs.angularjs.org/guide/directive

于 2012-07-28T11:51:20.093 に答える