2016-08-14 12 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

Ok ..完全なコントローラ、ファクトリコードを追加してください。もう一度ハングアップします –

+0

これは役に立ちます。あなたが他に何かを必要とすれば..私はあなたにも他のコードを与えることができます。 私はログインします。私はそれらのデータをクッキーに保存しています。だから私はそれらのデータにアクセスしたい。他のビューでそれは.. –

答えて

1

コメントで説明したように、Cookieはオブジェクトではなく文字列を格納します。 angular.fromJsonメソッドを使用してJSON文字列からオブジェクトを戻すことができます。

$scope.userObj = angular.fromJson(userObj) 

あなたは潜在的に、$cookiesサービスのgetObjectputObject方法を使用することによって、さらに物事を単純化する角度シリアル化をさせると、バックグラウンドでオブジェクトをデシリアライズできます。

+2

なぜ '$ cookies.getObject/putObject'を使用せず、Angularがあなたのためにシリアライズ/デシリアライズを行うのを許可しますか? – Lex

+0

私の答えを更新しました。それを指摘してくれてありがとう –

関連する問題