2016-08-14 106 views
0

我很想念一些非常簡單的東西。在角度js中打印JSON,我可以在控制檯中看到,但無法打印相同的圖片

在我的控制器中,我得到了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> 

我相信我已經包括了每一個控制器和連接工廠到它,事情是我能夠打印的accessToken。但是我無法打印它的名稱和ID。

如果我嘗試打印{{userObj}},整個對象將被打印。那麼如果我嘗試{{userObj.name}}那麼我應該得到該用戶對象的名稱值,對吧?

+0

它應該工作。請你可以發佈一個重現問題的運行代碼。從代碼中不清楚您是否訪問了正確的範圍。 – Braj

+0

好吧..讓我添加完整的控制器,工廠代碼..掛在第二個 –

+0

希望這會有所幫助。如果你需要別的東西..我可以給你其他的代碼。 當我登錄。我將這些數據保存到Cookie中。所以我想訪問這些數據。在其他視圖..多數民衆贊成在它.. –

回答

1

正如評論中所述,您的cookie存儲字符串,而不是對象。您可以使用angular.fromJson方法從JSON字符串中獲取對象。

$scope.userObj = angular.fromJson(userObj) 

你可能使用$cookies服務的getObjectputObject方法,讓角連載進一步簡化和反序列化對象的背景。

+2

爲什麼不使用'$ cookies.getObject/putObject'並允許Angular爲你做序列化/反序列化? – Lex

+0

更新了我的答案,謝謝你指出 –