Javascript 应用程序';主控制器';范围
为了进一步理解scopes继承,在阅读之后,我有一个问题。为什么在同一个标记上声明Javascript 应用程序';主控制器';范围,javascript,angularjs,angularjs-scope,Javascript,Angularjs,Angularjs Scope,为了进一步理解scopes继承,在阅读之后,我有一个问题。为什么在同一个标记上声明ng应用程序和ng控制器时,该控制器的作用域不等于rootScope <html ng-app="myApp" ng-controller="MainCtrl"></html> app.controller( 'MainCtrl', function( $scope , $rootScope ) { console.log( angular.equals ( $scope ,
ng应用程序
和ng控制器
时,该控制器的作用域不等于rootScope
<html ng-app="myApp" ng-controller="MainCtrl"></html>
app.controller( 'MainCtrl', function( $scope , $rootScope ) {
console.log( angular.equals ( $scope , $rootScope ) ); // false
});
应用程序控制器('MainCtrl',函数($scope,$rootScope){
console.log(angular.equals($scope,$rootScope));//false
});
测试:Angular将始终创建自己的$rootScope,而不管您的控制器声明如何
ng控制器的作用域将从$rootScope继承,就像您调用$rootScope一样。$new()每个控制器都定义自己的嵌套作用域,
$rootScope
是其(最终)祖先。如果您有点好奇,请检查ngController
指令的定义。它设置一个新范围(scope:true
),并将自身设置为控制器
谢谢,KevinStone的链接实际上解释了这个问题,
ngController
具有scope:true