默认情况下,AngularJS在当前作用域中无法找到某个属性,就会在父级作用域中进行查找.
<div ng-controller="MyController"> <div ng-controller="ChildController"> <a ng-click="sayHllo()">Say hello</a> </div> {{person}} </div>
angular.module('myApp',[])
.controller("MyController",function($scope){
$scope.person = {greeted : true};
})
.controller("ChildController",function($scope){
$scope.sayHllo = function(){
$scope.person.name = 'ari lerner';
}
})
如果我们将"ChildController"置于"MyController"内部,那么"ChildController"的$scope对象的父级作用域就是"MyController"的$scope对像.
根据原型继承的机制,我们可以在子作用域中访问父作用域的$scope对象
控制器的这种嵌套和DOM的嵌套结构很相似
控制器应该尽量保持短小,而且在控制中进行DOM操作的数据操作就不是一个好的实践