繁体   English   中英

我可以在控制台中看到在angular js中打印JSON,但无法打印出

[英]Print the JSON in angular js, I can see in console, but not able to print the same

我缺少一些非常简单的东西。

在我的控制器中,我正在获取JSON对象。

app.controller("dashboardCtrl",  ["$scope","authFactory","$location", function($scope,authFactory,$location){
    var userObj = authFactory.getUserObj(userObj);
    console.log(userObj);
    $scope.userObj = userObj;

    var accessToken = authFactory.getAccessToken();
    console.log(accessToken);
    $scope.accessToken = accessToken;

    $scope.FBout = function(){
        FB.logout(function(response) {
            authFactory.clearCookie();
            $location.path("/");    
            $scope.$apply();
        });
    };
}]);

在控制台中,我得到如下响应

{"name":"Pavan Sudheendra","id":"539193599614696"}

相同的工厂代码如下所示:

app.factory("authFactory",["$cookies","$location",function($cookies,$location){
    var authFactory = {};

    authFactory.setAccessToken = function(accessToken){
        $cookies.put("accessToken",accessToken);
    }

    authFactory.getAccessToken = function(){
        return $cookies.get("accessToken");
    }

    authFactory.getUserObj = function(){
        var userObj = $cookies.get('userObj');

        if(userObj){
            return userObj;
        }
        else {
            console.log("error");
        }
    }

    authFactory.clearCookie = function(){
        $cookies.remove("accessToken");
        $cookies.remove("userObj");
    }

    authFactory.isAuthenticated = function(){
        var isLoggedIn=$cookies.get("accessToken")?true:false;
        return isLoggedIn;
    }

    return authFactory;
}]);

但我试图使用该对象,以便在前端打印它。 喜欢

<h1> this is dashboard {{accessToken}} {{userObj.name}} </h1>

我确定我已经包括了每个控制器并将其链接到工厂,而且事情是我能够打印访问令牌。 但是我不能打印它的名称和ID。

如果我尝试打印{{userObj}} ,则将打印整个对象。 那么如果我尝试{{userObj.name}}那么我应该获取该用户对象的名称值,对吗?

如评论中所述,您的cookie存储一个字符串,而不是一个对象。 您可以使用angular.fromJson方法从JSON字符串中获取一个对象。

$scope.userObj = angular.fromJson(userObj)

您可以通过使用$cookies服务的getObjectputObject方法(使Angular在后台对对象进行序列化和反序列化)来进一步简化操作。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM