web-dev-qa-db-ja.com

Angularjsは属性を動的に設定します

angular js。でコントローラーのdivに属性を動的に追加しようとしています。

 var table = document.getElementById("div_id").setAttribute("ng-click", "function_name()");
 $scope.$apply();

すべてが正常に見えます。デバッガーでは、属性が追加されたことがわかりますが、関数は実行されません。既存のdivに属性を追加する方法と、それを機能させる方法についてのアイデアはありますか?

20
user2282428

Divを再コンパイルする必要があります

var el = angular.element("div_id");
$scope = el.scope();
$injector = el.injector();
$injector.invoke(function($compile){
   $compile(el)($scope)
})

http://jsfiddle.net/r2vb1ahy/

19
cevek

iDで要素を取得し、新しい属性と値を設定します

 var el =angular.element('#divId');
 el.attr('attr-name', 'attr-value');
13
Shaishab Roy

属性を動的に設定するには

var myEl = angular.element(document.querySelector('#divID'));
myEl.attr('myattr',"attr val");

属性値を取得するには

var myEl = angular.element( document.querySelector('#divID'));
alert(myEl.attr('myattr'));

属性の使用を削除するには

var myEl = angular.element( document.querySelector( '#divID' ) );
myEl.removeAttr('myattr');
0