Angularjs动态设置属性

use*_*428 23 javascript attributes setattribute angularjs

我试图在角度js中动态地将属性添加到控制器中的div.

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

一切看起来都很好,在调试器中我看到该属性已添加但它不执行我的功能.您是否有任何想法如何将属性添加到现有div以及如何使其工作?

cev*_*vek 20

你需要重新编译你的div

var el = angular.element("div_id");
$scope = el.scope();
$injector = el.injector();
$injector.invoke(function($compile){
   $compile(el)($scope)
})
Run Code Online (Sandbox Code Playgroud)

http://jsfiddle.net/r2vb1ahy/


Sha*_*Roy 13

按id获取元素并设置新的属性和值

 var el =angular.element('#divId');
 el.attr('attr-name', 'attr-value');
Run Code Online (Sandbox Code Playgroud)

  • 不,DOM操作是您在需要时应该做的事情.唯一的要求是将DOM操作保持在控制器之外,并将其保留在自定义指令中. (4认同)