2016-02-18 102 views
-1

我有兩個控制器,即AControllerBController

我需要控制器AController的價值得到的$ scope.myName到控制器BController的$ scope.myName。

注意:在這裏我沒有傳遞值,我試圖獲取值。

我的樣本AngularJS腳本

var app = angular.module("DemoProject", ['ngRoute', 'ngAnimate', 'ngMessages', 'ngMaterial']); 

app.controller('AController', function ($scope, $location, $rootScope, $document, $window) { 
    $scope.myName = 'Bala'; 
}); 

app.controller('BController', function ($scope, $location, $rootScope, $document, $window) { 
    $scope.myName = AController.$scope.myName; 
}); 

廣播和其他功能是傳遞值。我認爲不是爲了獲取價值。請幫助我。

注意:不要通過價值形式AController。我需要一個解決方案如何獲取 。請幫助我。


差我的帖子之間如何從其他AngularJs控制器$範圍值變量Global variables in AngularJS

的帖子的內容是

我有一個問題,即我在控制器的範圍內初始化一個變量。然後當用戶登錄時,它會在另一個控制器中被更改。此變量用於控制導航欄等內容,並根據用戶類型限制對站點各部分的訪問,因此重要的是它保留其值。它的問題是初始化它的控制器被角度再次調用,然後將該變量重置爲其初始值。

我認爲這不是正確的方式來聲明和初始化全局變量,以及它不是真正的全局變量,所以我的問題是什麼是正確的方式,是否有任何與當前角度版本的工作有關的好例子?

說明:如何我的帖子從上述郵政

請參閱句子不同「值在另一個控制器改變當用戶登錄」,這意味着假設控制器B試圖通過通過值廣播到控制器A設置$scope.myName

在這裏,我的要求是如何獲取值或如何從BController中的AController獲取$ scope.myName的值。

首先了解該帖子,然後將其標記爲重複。

+1

它的建議使用服務共享跨控制器代碼或狀態 - https://docs.angularjs.org/guide/services –

+2

的([在AngularJS全局變量]可能的複製http://stackoverflow.com/問題/ 11938380/global-variables-in-angularjs) –

+0

@ZackMacomber上述文章談到了值傳遞而不是價值獲取。沒有相關的帖子,谷歌搜索後,然後我張貼這個問題。請幫助我...... –

回答

2

使用服務這樣

var app = angular.module("DemoProject", ['ngRoute', 'ngAnimate', 'ngMessages', 'ngMaterial']); 

app.controller('AController', function ($scope, $location, $rootScope, $document, $window, myService) { 
    $scope.myName = myService.myName; 
    myService.myName = "Bala"; 

});

app.controller('BController', function ($scope, $location, $rootScope, $document, $window, myService) { 
    $scope.myName = myService.myName; 

});

app.factory('myService', function() { 
    return { 
     myName: '' 
    } 
}); 
相關問題