第5章 作用域

通常AngularJS中应用(App)是由若干个视图(View)组合成而成的,而视图(View)又都是HTML元素,并且HTML元素是可以互相嵌套的,另一方面视图都隶属于某个控制器(Controller),进而控制器之间也必然会产生嵌套关系。

每个控制器(Controller)又都对应一个模型(Model)也就是$scope对象,不同层级控制器(Controller)下的$scope便产生了作用域。

5.1 根作用域

  • 一个AngularJS的应用(App)在启动时会自动创建一个根作用域$rootScope,这个根作用域在整个应用范围(ng-app所在标签以内)都是可以被访问到的。

5.2 子作用域

  • 通过ng-controller指令可以创建一个子作用域,新建的作用域可以访问其父作用域的数据。

示例:

<body ng-app="App">
	<div class="box" ng-controller="ParentController">
		<nav>
			<a href="javascript:;">首页</a>
			<a href="javascript:;">列表</a>
		</nav>
		<div class="main" ng-controller="ChildController">
			<h4>{{name}}</h4>
		</div>
	</div>
	<script src="./libs/angular.min.js"></script>
	<script>
        /**
		 * 关于作用域:
		 * 新建一个函数就会产生一个新的作用域
         * 并且子作用域可以访问父级作用域,父级不
         * 能访问子级的
         */
		var App = angular.module('App', []);
		App.controller('ParentController', ['$scope', function ($scope) {
		    $scope.name = '小明';
        }]);
		App.controller('ChildController', ['$scope', function ($scope) {
		    $scope.name = '小红';
		}])
	</script>
</body>
posted on 2018-03-11 16:42  luoyu113  阅读(127)  评论(0编辑  收藏  举报