你们都知道 $rootScope 是全局做用域,保存到此做用域的变量,全部该模块的控制器局部做用域下都能访问到,那么问题来了,若是全局做用域的变量名与局部做用域的名称同样,那么该如何区分调用呢???html
方法仍是很简单的:调用全局做用的变量,只须要在变量前加 $root 便可。app
<!DOCTYPE html> <html ng-app='myApp'> <head> <meta charset='utf-8'> <script src='angular.js'></script> </head> <body> <div ng-controller='myCtrl1'> <div>myCtrl1 : {{name}}</div> <div>myCtrl1 : {{$root.name}}</div> </div> <div ng-controller='myCtrl2'> <div>myCtrl2 : {{name}}</div> </div> <script> var app = angular.module("myApp",[]) app.controller("myCtrl1",function($scope, $rootScope){ $scope.name = 'scope'; }) app.controller("myCtrl2",function($scope, $rootScope){ $rootScope.name = 'rootScope'; }) </script> </body> </html>
不过通常为了防止冲突的变量名,全局做用域下的变量名称起的通常都有惟一性,因此调用时能够直接插值 : {{变量名}} 来调用。spa