Shi*_*han 13 javascript angularjs
在这里,作者提到
Run Code Online (Sandbox Code Playgroud)the $scope object used by the two controllers are not the same $scope object
相同的片段:
现在考虑对上面的代码进行一些修改.
<body ng-app="myapp">
<div ng-controller="myController1">
<div>{{data.theVar}}</div>
<div>{{data.common}}</div>
<div ng-controller="myController2">
<div>{{data.theVar}}</div>
<div>{{data.common}}</div>
<div>{{temp}}</div>
<div>{{newTemp}}</div>
</div>
</div>
<script>
var module = angular.module("myapp", []);
var myController1 = module.controller("myController1", function($scope) {
$scope.data = {
theVar : "Value One",
common : "common Value"
};
$scope.temp = "John Wick 2 is going to be released soon";
});
var myController2 = module.controller("myController2", function($scope) {
$scope.data = {
theVar : "Value Two"
};
$scope.newTemp = $scope.temp;
console.log("");
});
</script>
</body>
Run Code Online (Sandbox Code Playgroud)
对应于controller2的视图已在controller1的视图内移动.
对于controller2中的这段代码,
$scope.newTemp = $scope.temp;
Run Code Online (Sandbox Code Playgroud)
$ scope是否突出显示在同一个对象上面?
如果是,AngularJS如何知道这一点?
如果它们是相同的,$scope.temp
在控制器2中将是未定义的,那么$scope.newTemp
呢?
对我来说,考虑到上述计划的o/p,它们并不相同.见下文:
AngularJS如何$scope.temp
在controller2中访问controller1的值?
请澄清?
最后,
Mar*_*ker 10
确实,$scope
两个控制器中使用的不一样,它们可以继承彼此的属性.Angular的$scope
s就像一棵树,树干是那个或那个的$rootScope
所有其他$scope
分支$scope
,所以既然你myController2
是孩子,myController1
你可以访问它中的变量.
$rootScope -> myController1 -> myController2
Run Code Online (Sandbox Code Playgroud)
在myController2
可以访问所有的父母$scope
秒,myController1
即可访问$rootScope
和$rootScope
只能访问本身.
归档时间: |
|
查看次数: |
488 次 |
最近记录: |