首页 > Web开发 > 详细

『AngularJS』理解$Scope

时间:2014-01-14 21:48:08      阅读:636      评论:0      收藏:0      [点我收藏+]

理解$Scope

执行概要

在AngularJS,一个子scope通常原型继承于它的父scope。应用于这个规则的表达式是一个使用scope:{...}的指令,这将创建一个『孤岛』scope(非原型继承)。这种构造通常在创建一个可复用组件指令的时候使用。

Scope继承通常是垂直的,并且你通常不需要知道它的发生,直到你尝试在子scope中使用2-way数据绑定到一个在父scope中定义的原始类型。scope不起作用的原因,很多是由于在它的父类中有同名的属性。AngularJS不会这么做,这是由JavaScript原型继承自己做的。新的AngularJS开发者经常不了解的是,ng-repeat、ng-switch、ng-view、ng-include都会创建一个新的子scope,所以问题经常在这些指令中出现。

在你的model中,带有「.」将会确认原型继承在起作用。所以使用<input type="text" ng-model="someObj.prop1"><input type="text" ng-model="prop1">更好。

如果你真的想要(或需要)使用一个原始的方式,有两项工作:

  • 在子scope中,使用$parent.parentScopeProperty。这将阻止子scope创建它自己的属性。
  • 在父scope上创建一个方法,并且从子scope中调用它,传递原始值到父scope中(并不总是起作用)。

相关细节

『AngularJS』理解$Scope

原文:http://www.cnblogs.com/sitemanager/p/3513827.html

(0)
(0)
   
举报
评论 一句话评论(0
关于我们 - 联系我们 - 留言反馈 - 联系我们:wmxa8@hotmail.com
© 2014 bubuko.com 版权所有
打开技术之扣,分享程序人生!