大家都知道 $rootScope 是全局作用域,保存到此作用域的變量,所有該模塊的控制器局部作用域下都能訪問到,那么問題來了,如果全局作用域的變量名與局部作用域的名稱一樣,那么該如何區分調用呢???
方法還是很簡單的:調用全局作用的變量,只需要在變量前加 $root 即可。
<!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>
不過一般為了防止沖突的變量名,全局作用域下的變量名稱起的一般都有唯一性,所以調用時可以直接插值 : {{變量名}} 來調用。