angular中scope之间的之间的继承关系

<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<script src="./js/angular-1.5.8.js"></script>
</head>
<body ng-app="mainApp">

<div>

<div>{{abc}}</div>
<div>{{def}}</div>

</div>
<div ng-controller="myController2">

<div>{{abc}}</div>
<div>{{def}}</div>

</div>
<script>

angular.module("mainApp",[])
.run(["$rootScope",function($rootScope){
$rootScope.abc="asdf";
$rootScope.def="def22";
}])
.controller("myController2",function($scope){
$scope.abc="fafa";
$scope.def="fda";
});

// $scope与模型:
// 1.什么才开始要创建?
// 2.它们之间的关系是什么?
//a.只要存在一个ng-app,在内部自动创建一个$rootScope对象;
//b.只要存在一个ng-controller,在内部就会自动的创建一个$scope;
//ab存之间的关系就是:$rootScope$scope是具有继承关系的,$scope是继承于$rootScope里面的属性或是方法,当然先要在自己当前的里面去找,是不是存在想要的属性或是方法,同时$rootScope也有自己要的属性或是方法;$scope在自己中的属性或是方法找到了,就不会再去$rootScope里面去找;(当然如果没找到,需要到$rootScope里面去找自己要想的属性或是方法)


//疑惑:那当ng-controller里面,还包含着ng-controller的时候,两者是什么关系呢?,那么两者产生的$scope是两个不一样的!那么第二个继承于第一个,如果第一个没有找到自己想要的方法或是属性的话,再要到$rootScope里面去找;这就是因为有继承关的原故;

//验证代码如上所示:
//思路是:先是通过$rootscope.属性A=“A”赋值,在后有在另一个controller中,通过是$scope.属性A进行赋值(其的赋值不与$rootscope的一样);看看俩者之间的赋值之后的情况,来判断是不是具有继承的关系;



// .config 配置, 意思是在程序运行之前需要执行的事情( 路由 )
// .run 运行, 在程序运行的时候进行执行;

</script>
</body>
</html>
原文地址:https://www.cnblogs.com/liubaichi/p/6044564.html