创建全局范围对象

时间:2014-07-01 07:18:05

标签: angularjs

在以下代码中:

var myApp = angular.module('myApp', []);

myApp.controller('UserCtrl', ['$scope', function ($scope) {

    // Let's namespace the user details
    // Also great for DOM visual aids too
    $scope.user = {};
    $scope.user.details = {
      "username": "Todd Motto",
      "id": "89101112"
    };

}]);

我有成员对象用户定义($ scope.user)。然而,这在控制器内定义。是否可以将其创建为全局对象,以便我的应用程序中的其他控制器可以访问同一个对象?

2 个答案:

答案 0 :(得分:2)

您可以定义在所有控制器之间共享的服务:

app.factory('userService', function() {
    return {
        user: { 
             details: {
                 username: 'Todd Motto',
                 id: 89101112
             }
        }

    };
});

然后将服务注入您的控制器:

app.controller('ctrl', function($scope, userService) {
      $scope.user = userService.user;
});

答案 1 :(得分:0)

使用$ rootScope,这将使其全局化,因为只有一个。

以下是阅读详情的链接:https://docs.angularjs.org/api/ng/service/ $ rootScope

请勿忘记在使用前将其注入控制器。

希望这有帮助。