我正在使用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?
感谢您的帮助。
答案 0 :(得分: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();