簡體   English   中英

Angularjs動態設置屬性

[英]Angularjs dynamically set attribute

我試圖在角度js中動態地將屬性添加到控制器中的div。

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

一切看起來都很好,在調試器中我看到該屬性已添加但它不執行我的功能。 您是否有任何想法如何將屬性添加到現有div以及如何使其工作?

你需要重新編譯你的div

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

http://jsfiddle.net/r2vb1ahy/

按id獲取元素並設置新的屬性和值

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

要動態設置屬性使用

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');

Angular2提供[attr.<attribute name>]來綁定屬性值。

<div id="divID" [attr.role]="roleVal">
  This text color can be changed
</div>

在組件類中:

  addAttr() {
    this.roleVal = 'admin';
  }

  removeAttr() {
    this.roleVal = '';
  }

  checkAttr() {
    alert(this.roleVal);
  }

來自http://blog.sodhanalibrary.com/2016/02/set-attribute-and-remove-attribute-with.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM