什么是AngularJS中的ng-binding?

时间:2013-12-30 00:41:11

标签: angularjs

我是一名AngularJS新手并试图弄清楚class=ng-binding在这个例子中做了什么:

<label ng-dblclick="editTodo(todo)" class="ng-binding">fghfgh</label>

我在这里找到了它:

http://todomvc.com/architecture-examples/angularjs/#/

我使用Chrome和开发者工具。这是一个有角度的关键字?我在手册(http://docs.angularjs.org/api/ng.directive:ngBind

中找不到它

2 个答案:

答案 0 :(得分:38)

class="ng-binding"由Angular内部使用。例如,查看ngBind source我们发现这一行添加了类并使用.data将绑定与其关联:

 element.addClass('ng-binding').data('$binding', attr.ngBind);

这就是为什么这行Angular源(注意{{todo.title}}上的双重卷曲导致ngBind):

<label ng-dblclick="editTodo(todo)">{{todo.title}}</label>

翻译成您在调试器中看到的内容:

<label ng-dblclick="editTodo(todo)" class="ng-binding">fghfgh</label>

所以class="ng-binding"不是你应该使用的东西。您会发现Angular经常使用类,注释和其他标记 - 因此您经常会在原始html和Angular处理结果之间看到这种变化。

答案 1 :(得分:5)

来自docs

  

ng-binding

     

用法:angular将此类应用于附加到的任何元素   数据绑定,例如通过ng-bind或{{}}花括号。 (看到   databinding指南)

因此类动态应用类ng-binding,以便编译器理解,元素具有与之关联的数据绑定。

作为开发人员,除非我们对这些类应用某些样式,否则我们不必担心。