我刚刚开始使用我的第一个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>
从下面的屏幕截图中可以看出,我的视图中没有显示名称和电子邮件值。
以下是我在localStorage中保存的值的屏幕截图。
答案 0 :(得分:1)
我猜问题可以在这一行
$scope.user = User.get(localStorage['userId']);
尝试将其更改为$scope.user = User.get({id: localStorage['userId']});
并检查您在$scope.user
变量中收到的内容。它可以是承诺,你需要调整嵌套。
<强>答案强>
我在我的controller.js中更新了上面的代码,并且在我的视图中也有一个嵌套问题,就像你提到的那样。
在我的观看而不是{{user.name}}
我需要使用{{user.user.name}}