【问题标题】:What is ng-binding for in AngularJS?AngularJS 中的 ng-binding 是什么?
【发布时间】:2018-03-15 22:20:52
【问题描述】:

我是 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)

【问题讨论】:

    标签: angularjs


    【解决方案1】:

    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 经常使用类、cmets 和其他标记——所以你会经常看到原始 html 和 Angular 处理结果之间的这种变化。

    【讨论】:

    • 这仍然不能回答为什么 Angular 添加了 ng-binding 类
    【解决方案2】:

    来自docs

    ng-binding

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

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

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

    【讨论】:

      猜你喜欢
      • 2014-03-19
      • 2013-01-22
      • 2017-03-19
      • 2015-05-25
      • 2011-04-21
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2012-10-22
      相关资源
      最近更新 更多