从 JSON rootscope 对象角度获取参数

Posted

技术标签:

【中文标题】从 JSON rootscope 对象角度获取参数【英文标题】:Angular get parameter from JSON rootscope object 【发布时间】:2015-11-15 20:17:27 【问题描述】:

在角度我有一个这样的 rootscope 对象:

"id":12,"email":"testmail@test.com","given_name":"John","family_name":"Doe","car":"BMW"

如何单独访问每个参数?

现在我只是这样做

 currentUser 

在做

 currentUser.email 

显然不起作用。我猜这个 JSON 对象有问题?

谢谢

【问题讨论】:

它应该可以工作..但你应该使用$rootScope来共享数据..去维修或工厂 您使用的是controllerAs 语法吗?如果没有,它应该工作。提供一个复制问题的演示 【参考方案1】:

你的 json 对象有什么问题,检查这种方式在 rootScope 上设置数据。也许对你有帮助。

angular.module('app', [])
.factory('currentUser', [
    function () 
        return 
            "id": 12,
            "email": "testmail@test.com",
            "given_name": "John",
            "family_name": "Doe",
            "car": "BMW"
        ;
    ])
.run([
    '$rootScope', 'currentUser', function ($rootScope, currentUser) 
        $rootScope.currentUser = currentUser;
    
]);

然后您可以在模板上调用 currentUser.email ,在代码上调用 $scope.currentUser.email。

您可以更新注入$rootScope 的控制器上的数据。

【讨论】:

嗨,我已经通过使用工厂解决了我的问题。但是更好的做法是什么?要使用 rootScope?还是工厂? 当前登录的用户是承认这种行为的少数例子之一,当我定义全局概念时,我实际上在我的应用程序上使用了这种方法。例如,当前登录的用户是可用的在应用程序的所有实例上,在范围内。最好保持根范围尽可能干净,以避免对模板的误解。只需保留全局概念即可。

以上是关于从 JSON rootscope 对象角度获取参数的主要内容,如果未能解决你的问题,请参考以下文章

如何使用 *ngFor 从对象角度获取值?

使用角度js将具有相同ID的重复对象从json数据合并为单个对象

如何以角度将对象从服务返回到组件

在 Typescript 中将 $state 和 $stateParams 的引用添加到 $rootScope(角度)

如何从包含其他参数的响应中获取 JSON 对象列表

围绕javascript json格式包装一个对象,如何获取角度来解析它