AngularJS作用域

作用域(scope)是构成AngularJS应用的核心基础,在整个框架中都被广泛使用,因此了解它如何工作是非常重要的。

应用的作用域是和应用的数据模型相关联的,同时作用域也是表达式执行的上下文。 $scope对象是定义应用业务逻辑、控制器方法和视图属性的地方。

作用域是视图和控制器之间的胶水。在应用将视图渲染并呈献给用户之前,视图中的模板会和作用域进行连接,然后应用会对DOM进行设置以便将属性变化通知给AngularJS。
这个功能让XHR请求等promise对象的实现变得非常容易。

作用域是应用状态的基础。基于动态绑定,我们可以依赖视图在修改数据时立刻更新$scope,也可以依赖$scope在其发生变化时立刻重新渲染视图。

AngularJS将$scope设计成和DOM类似的结构,因此$scope可以进行嵌套,也就是说我们可以引用父级$scope中的属性。
如果你了解JavaScript,对这个分层的概念应该并不陌生。在JavaScript中,当创建一个新的执行上下文时,实际上是用函数创建了一个新的本地上下文。

AngularJS中$scope的概念与其类似,当为子DOM元素创建新的作用域时,实际上是为子DOM元素创建了一个新的执行上下文。
作用域提供了监视数据模型变化的能力。它允许开发者使用其中的apply机制,将数据模型的变化在整个应用范围内进行通知。

我们在作用域的上下文中定义和执行表达式,同时它也是将事件通知给另一个控制器和应用其他部分的中介。

将应用的业务逻辑都放在控制器中,而将相关的数据都放在控制器的作用域中,这是非常完美的架构。

posted @ 2017-07-14 11:01  子秦  阅读(207)  评论(0编辑  收藏  举报