应用'主控制器'范围

时间:2013-10-09 06:10:53

标签: javascript angularjs angularjs-scope

在阅读this post之后,我只想了解范围继承,我有一个问题。为什么当我们在同一个标​​签上声明ng-appng-controller时,此控制器的范围不等于rootScope

 <html ng-app="myApp" ng-controller="MainCtrl"></html>

 app.controller( 'MainCtrl', function( $scope , $rootScope ) {

    console.log( angular.equals ( $scope , $rootScope ) ); // false

 });

测试:http://plnkr.co/edit/7mAFeZ?p=preview

2 个答案:

答案 0 :(得分:1)

无论您的控制器声明如何,Angular都将始终创建自己的$ rootScope。

ng-controller的范围将继承自$ rootScope,就像你调用$ rootScope一样。$ new()

答案 1 :(得分:1)

每个控制器都定义了自己的嵌套范围,其中$rootScope是(终极)祖先。如果您有点好奇,请查看ngController指令的定义。它设置了一个新的范围(scope: true)并将自己设置为控制器。

https://github.com/angular/angular.js/blob/master/src/ng/directive/ngController.js#L164