AngularJS Link功能:element.attr和link的attrs之间的区别?

时间:2014-05-01 02:41:37

标签: angularjs

在AngularJS的链接功能中,我们有link: function(scope, element, attrs)element.attr()和链接的attrs之间有什么区别?

2 个答案:

答案 0 :(得分:5)

看看这个DEMO

app.directive("test",function($compile){
  return {
      restrict:"A",
      link:function(scope,element,attrs){
          console.log("attrs:" + attrs.name);
          console.log("element.attr:" + element.attr("name"));
      }
   };
});
  • attrs.name:显示resolved value
  • element.attr("name"):显示original expression

基本上,attrs显示的值根据当前范围解决element.attr()显示分配给HTML的原始字符串

答案 1 :(得分:1)

该元素是jqlite或jquery对象,其a method attr

而Angular文档定义的attrs是

  

iAttrs - 实例属性 - 声明的规范化属性列表   在所有指令链接函数之间共享此元素。

请参阅Attributes https://docs.angularjs.org/api/ng/service/ $ compile

的编译文档