在配置文件中显示本地存储的用户数据

时间:2017-02-27 19:50:55

标签: angularjs ionic-framework

我刚刚开始使用我的第一个Ionic应用程序并且有点困惑。我使用rails API登录用户,然后我想在Ionic应用程序(名称,电子邮件等)上显示用户信息。

我似乎无法在我的根页上提取用户的电子邮件和姓名。下面是我的代码,我为提出这样一个初学者级别的问题而道歉。

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
        });
      }
    );
  }
});

标签-dash.html

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

从下面的屏幕截图中可以看出,我的视图中没有显示名称和电子邮件值。

enter image description here

以下是我在localStorage中保存的值的屏幕截图。

enter image description here

1 个答案:

答案 0 :(得分:1)

我猜问题可以在这一行

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

尝试将其更改为$scope.user = User.get({id: localStorage['userId']});

并检查您在$scope.user变量中收到的内容。它可以是承诺,你需要调整嵌套。

<强>答案

我在我的controller.js中更新了上面的代码,并且在我的视图中也有一个嵌套问题,就像你提到的那样。

在我的观看而不是{{user.name}}我需要使用{{user.user.name}}