作用域是 AngularJS 应用程序中的一个关键概念,具有以下几个特点:
1. 层次结构
AngularJS 中的作用域形成了一个层次结构,与 DOM 树的结构相对应。每个 AngularJS 控制器都有一个作用域,它可以包含子作用域,从而形成了一个层次化的结构。
2. 继承性
子作用域会继承父作用域的属性和方法,但是子作用域的修改不会影响父作用域。
3. 双向数据绑定
作用域是双向数据绑定的基础。当作用域中的模型数据发生变化时,视图会自动更新,反之亦然。这是通过 AngularJS 的脏检查机制来实现的,即 AngularJS 会定期检查作用域中的变化。
4. 控制器和视图的桥梁
作用域充当了控制器(Controller)和视图之间的桥梁,通过作用域,控制器可以将数据传递给视图,并监听视图上的事件。
5. 生命周期
作用域有自己的生命周期,包括创建、更新和销毁阶段。这些生命周期与控制器和指令的生命周期密切相关。
在控制器中,你可以通过 $scope 对象来访问作用域。例如:
app.controller('myController', function($scope) {
// 在作用域中定义一个变量
$scope.message = 'Hello, AngularJS!';
});
在视图中,你可以使用双花括号 ({{}}) 语法来访问作用域中的数据:
<p>{{ message }}</p>
此时,message 是通过作用域传递到视图中的数据。
需要注意的是,AngularJS 在新版本中引入了控制器别名语法 controllerAs,并鼓励使用组件化开发。在这种情况下,作用域仍然存在,但使用了控制器别名来访问作用域中的数据。
转载请注明出处:http://www.pingtaimeng.com/article/detail/4857/Angular