Scope(作用域)是应用在HTML(视图)和JavaScript(控制器)之间的纽带。
Scope是一个对象,有可用的方法和属性。
Scope可应用在视图和控制器上。
一、如何使用Scope
当你在AngularJS创建控制器时,你可以将$scope对象当作一个参数传递:
控制器中的属性对应了视图上的属性:
<div ng-app="myApp" ng-controller="myCtrl">
<h1>{{carname}}</h1>
</div>
<script>
var app = angular.module('myApp',[]);
app.controller('myCtrl',function($scope){
$scope.carname = "Volvo";
});
</script>
当在控制器中添加$scope对象时,视图(HTML)可以获取了这些属性。
视图中,不需要添加$scope前缀,只需要添加属性名即可,如:{{carname}}。
二、Scope概述
AngularJS应用组成如下:
- View(视图),即HTML。
- Model(模型),当前视图中可用的数据。
- Controller(控制器),即JavaScript函数,可以添加或修改属性。
scope是模型。
scope是一个JavaScript对象,带有属性和方法,这些属性和方法可以在视图和控制器中使用。
如果你修改了视图,模型和控制器也会相应更新。
三、Scope作用范围
了解你当前使用的scope是非常重要的。
当只有一个作用域scope,所以处理起来比较简单,但在大型项目中,HTML DOM中有多个作用域,这时,你就需要知道你使用的scope对应的作用域是哪一个。
①根作用域
所有的应用都有一个$rootScope,它可以作用在ng-app指令包含的所有HTML元素中。
$rootScope可作用于整个应用中,是各个controller中的scope的桥梁,用rootscope定义的值,可以在各个controller中使用。
创建控制器时,将$rootScope作为参数传递,可在应用中使用。