加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

为什么AngularJS文档不使用模型指令中的点?

发布时间:2020-12-17 09:07:52 所属栏目:安全 来源:网络整理
导读:在视频 AngularJS MTV Meetup: Best Practices (2012/12/11),Mi?ko解释“..如果你使用ng-model有一个点的地方,如果你没有一个点,你做错了..” 然而,Angular.JS website的第一个例子(基础)似乎与它矛盾。是什么赋予了?自从MTV聚会以来,Angular.JS有了改
在视频 AngularJS MTV Meetup: Best Practices (2012/12/11),Mi?ko解释“..如果你使用ng-model有一个点的地方,如果你没有一个点,你做错了..”

然而,Angular.JS website的第一个例子(基础)似乎与它矛盾。是什么赋予了?自从MTV聚会以来,Angular.JS有了改变,现在它更容易与ng-model?

这个小点在处理范围继承的复杂性时非常重要。

egghead.io video “The Dot”有一个非常好的概述,就像这个非常流行的堆栈溢出问题:What are the nuances of scope prototypal / prototypical inheritance in AngularJS?

我会在这里总结一下:

Angular.js使用范围继承来允许子范围(例如子控制器)查看父范围的属性。所以,假设你有一个设置:

<div ng-controller="ParentCtrl">
    <input type="text" ng-model="foo"/>
    <div ng-controller="ChildCtrl">
        <input type="text" ng-model="foo"/>
    </div>
</div>

(Play along on a JSFiddle)

首先,如果你启动应用程序,并且输入到父输入,孩子会更新以反映它。

但是,如果编辑子范围,则与父级的连接现在已损坏,并且两者不再同步。另一方面,如果使用ng-model =“baz.bar”,则链接将保留。

发生这种情况的原因是,子范围使用原型继承来查找值,因此只要它不会在子节点上设置,那么它将延迟到父节点范围。但是,一旦设置,它不再查找父级。

当你使用对象(baz)时,没有任何东西被设置在子作用域上,继承仍然存在。

有关更多详细信息,请查看StackOverflow answer

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读