什么是AngularJS中的ng-binding?

use*_*007 27 angularjs

我是一个AngularJS新手并试图找出class=ng-binding这个例子中的内容:

<label ng-dblclick="editTodo(todo)" class="ng-binding">fghfgh</label>
Run Code Online (Sandbox Code Playgroud)

我在这里找到了:

http://todomvc.com/architecture-examples/angularjs/#/
Run Code Online (Sandbox Code Playgroud)

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

Kay*_*ave 39

class="ng-binding"由Angular内部使用.例如,查看ngBind源代码,我们发现这一行添加了类并使用.data以下方法将绑定与它相关联:

 element.addClass('ng-binding').data('$binding', attr.ngBind);
Run Code Online (Sandbox Code Playgroud)

这就是为什么这一系列的Angular源(注意{{todo.title}}结果中的双重卷曲ngBind):

<label ng-dblclick="editTodo(todo)">{{todo.title}}</label>
Run Code Online (Sandbox Code Playgroud)

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

<label ng-dblclick="editTodo(todo)" class="ng-binding">fghfgh</label>
Run Code Online (Sandbox Code Playgroud)

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

  • 这仍然没有回答为什么angular添加了ng-binding类 (4认同)

Asi*_*K T 7

来自文档:

ng-binding

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

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

作为开发人员,除非我们将一些样式应用于这些类,否则我们不必担心这一点.