2017-03-16 55 views

回答

2

每個控制器都有自己的$scope。即使頁面的所有控制器都有權訪問$rootScope,但這不是推薦的方法,因爲它就像是應用程序模塊的全局變量容器。首選的方法是使用定製服務。

使用$ rootScope:

$rootScope.value = "shared value using $rootScope"; 

這可以在如分別$root.value$rootScope.value任何意見或控制器來訪問。

使用自定義服務:

$scope.shareCustom = function() { 
    CustomService.value = "shared value using CustomService"; 
}; 

這可以以任何控制器注入CustomService並將其連接到其$scope訪問。

摘錄:

.controller('AnyCtrl', function ($scope, CustomService) { 
    $scope.customService = CustomService; 
}); 

<p>{{customService.value}}</p> 

我已經Plunker Demo來說明兩者的數據共享這些方式。

1

沒有你不能。當你移動到另一個頁面時,新的控制器會被初始化。

爲了使用相同的變量,請考慮使用工廠/服務共享變量。您也可以使用$ rootScope,但它不是推薦的方式。

+0

當我們改變到其他頁面做第一頁的範圍改變? –

+0

你在第一頁中的範圍是什麼意思,不是沒有。它會保持在那個狀態 – Sajeetharan

相關問題