2017-02-27 9 views
0

Ich beginne gerade meine erste Ionic App und bin ein wenig verwirrt. Ich benutze eine Rails-API, um einen Benutzer anzumelden, und dann möchte ich Benutzerinformationen auf der Ionic App anzeigen (Name, E-Mail, etc ...).Benutzerdaten vom lokalen Speicher im Profil anzeigen

Ich kann nicht scheinen, die E-Mail-Adresse und den Namen des Benutzers auf meiner Root-Seite einzutragen. Unten ist mein Code und ich entschuldige mich dafür, dass ich eine solche Anfängerfrage gestellt habe.

services.js

angular.module('starter.services', []) 

.factory('User', function($resource) { 
    return $resource("http://localhost:3000/api/v1/users/:id.json"); 
}) 

.factory('UserSession', function($resource) { 
    return $resource("http://localhost:3000/login.json"); 
}) 

controller.js

angular.module('starter.controllers', []) 

.controller('DashCtrl', function($scope, User) { 
    $scope.user = User.get(localStorage['userId']); 
}) 

.controller('LoginCtrl', function($scope, $location, UserSession, $ionicPopup, $rootScope) { 
    $scope.data = {}; 

    $scope.login = function() { 
    var user_session = new UserSession({ user: $scope.data }); 
    user_session.$save(
     function(data){ 
     window.localStorage['userId'] = data.id; 
     window.localStorage['userName'] = data.name; 
     window.localStorage['userEmail'] = data.email; 
     window.localStorage['userZip'] = data.zip; 
     window.localStorage['userBalance'] = data.account_balance; 
     $location.path('/tab/dash'); 
     }, 
     function(err){ 
     var error = err["data"]["error"] 
     var confirmPopup = $ionicPopup.alert({ 
      title: 'An error occured', 
      template: error 
     }); 
     } 
    ); 
    } 
}); 

Tabula dash.html

<ion-view title="Overview"> 
    <ion-content class="padding"> 
    <h2>Name: {{user.name}}</h2> 
    <p>Email: {{user.email}}</p> 
    </ion-content> 
</ion-view> 

Wie Sie können s ee aus dem Screenshot unten sind die Namen und E-Mail-Werte aus meiner Sicht nicht sichtbar.

enter image description here

Hier ist auch ein Screenshot der in meinem local gespeicherten Werte.

enter image description here

+0

": // localhost: 3000/api/v1/users/id.json http" zu verwenden, benötigt? !!!! –

+0

@ZeRubeus Ich entfernte die .json und das schien keinen Unterschied zu machen. –

+0

Warum verwenden Sie neu mit dem Dienst 'UserSession'? –

Antwort

1

Ich denke, Problem in dieser Linie

sein kann

$scope.user = User.get(localStorage['userId']);

Versuchen Sie es $scope.user = User.get({id: localStorage['userId']});

zu ändern und überprüfen, was haben Sie in $scope.user Variable erhalten. Es kann vielversprechend sein und Sie müssen die Verschachtelung anpassen.

Antwort

ich den obigen Code in meinem controller.js aktualisiert und hatte auch eine Verschachtelung Problem in meinen Ansichten, wie Sie erwähnt hatte. was hier .json zu tun hat

In meinen Ansichten statt {{user.name}} ich {{user.user.name}}

+0

danke für die schnelle Lösung, habe ich Ihre Antwort mit meiner Lösung auf der Grundlage Ihrer Hilfe aktualisiert! –

Verwandte Themen