2016-11-30 73 views
0

我正在用angularjs編寫一個應用程序,我不知道如何訪問我的主控制器中的變量。

gsg_main.controller('mainCtrl',['$scope','SessionService','$http','$routeParams','MessageService','$interval','$location','orderByFilter',function($scope,SessionService,$http,$routeParams,MessageService,$interval,$location,orderBy){ 
//variablen 
var self = this; 
self.username = "any_name"; 

欲從嵌套控制器訪問用戶名:

gsg_main.controller('testCtrl',['$scope',function($scope){ 
var self = this; 
self.testvar = $scope.$parent.username; 

}]);

我也試過:

self.testvar = $scope.$parent.parent.username; 

這是我在其他帖子找到。

有沒有在主控制器中使用$ scope的方法?

感謝您的幫助。

+2

你可以始終使用服務來共享控制器之間的值。 – Lex

回答

1

創建服務:

.service('UsernameService', function() { 
    var username = null; 

    this.setUsername = function(value) { 
     username = value; 
    }; 

    this.getUsername = function() { 
     return username; 
    } 
    }) 

把它注射到你的控制器:

.controller('mainCtrl', ['$scope', 'UsernameService', function($scope, UsernameService) { ... } 

然後就可以調用這些函數來獲取和設置用戶名值:

UsernameService.setUsername("any_name"); 
... 
self.testvar = UsernameService.getUsername(); 
+0

非常感謝你,這幫了很大的忙 – Tobi

相關問題