每部分的angularjs应用都有一个父scope(但是ng-app对应的是$rootScope,这个scope是终极scope),除了isolate scope,所有的scope都是通过原型继承来创建,也就是说可以访问它的父的scope.如果你对OOP比较熟悉,这种行为你看起来就比较熟悉了。
每次html渲染属性和方法是,会从当前的scope中寻找,如果没有找到,就从他的父scope中寻找,直到检索到$rootScope中,如果还没有找到就会报错。
下面看个例子:
<DIV ng-controller="parentController">
parent:{{parent}} <br>
parent --> child : {{child}}
<div ng-controller="childController">
child : {{child}} <br>
child --> parent : {{parent}}
</div>
</DIV>
controller中的定义如下:
var app = angular.module(‘demo‘,[]);
app.controller(‘parentController‘, function($scope){
$scope.parent =‘parentString‘
});
app.controller(‘childController‘, function($scope){
$scope.child = ‘childString‘
});
自己跑一下代码啊,不要偷懒啊!
从运行结果上来看,子scope中可以直接访问父scope中的方法。如果在你的应用场景中,如果是公共的属性就可以定义到父scope中。
好了,拜拜,下次见!
本文出自 “Eason's hcc” 博客,请务必保留此出处http://hcc0926.blog.51cto.com/172833/1559742
原文:http://hcc0926.blog.51cto.com/172833/1559742