控制作用域:
- 通常AngularJS中应用(App)是由若干个视图(View)组合成而成的,而视图(View)又都是HTML元素,并且HTML元素是可以互相嵌套的,另一方面视图都隶属于某个控制器(Controller),进而控制器之间也必然会产生嵌套关系。
- 每个控制器(Controller)又都对应一个模型(Model)也就是$scope对象,不同层级控制器(Controller)下的$scope便产生了作用域。
子作用域
- 通过ng-controller指令可以创建一个子作用域,新建的作用域可以访问其父作用域的数据。
- 先找自己属性,再去找父级属性.如果父级没有,则为空.
- 子级可以访问父级的元素.
- 父级不能访问子级的元素.
根作用域 $rootScope
- 一个angular的应用(app)在启动时会创建一个根作用域
$rootScope
. - 这个根作用域在整个应用范围(ng-app 所在标签以内)都是可以被访问到的.
-
ng-init
初始化全局变量 - 使用 ng-init="属性名称 = 属性值" , 创建一个根作用域.
<!--绑定模块-->
<body ng-app="app" ng-init="name='xmg' ">
<!--绑定控制器father-->
<div ng-controller="fatherController">
<p>{{name}}</p>
<!--绑定控制器1-->
<div ng-controller="xmgController">
<p>{{name}}</p>
</div>
<!--绑定控制器2-->
<div ng-controller="xmgController2">
<p>{{name}}</p>
</div>
</div>
</body>
<script src="js/angular.js"></script>
<script>
//1.创建模块
var app = angular.module('app', []);
//2.创建控制器father
app.controller('fatherController', ['$scope', function ($scope) {
// $scope.name = "father";
}]);
//3.创建控制器1
app.controller('xmgController', ['$scope', function ($scope) {
// $scope.name = "SK111";
}]);
//4.创建控制器2
app.controller('xmgController2', ['$scope', function ($scope) {
$scope.name = "SK222";
}]);
//3.绑定模块 ng-app="app"
//4.绑定控制器 ng-controller="xmgController"
</script>
1.创建控制器1,控制器2,并绑定
2.创建控制器father ,并绑定
3.去掉控制器2 , name
4.父级添加p标签, 注释父级属性
<p>{{name}}</p>