我的目标是,我将为不同的用户提供不同的标签布局 像病人和医生
在我的控制器中,我将记录的用户存储在 $ rootScope.currentUser 中,就像这样
$auth.login(credentials).then(function(data) {
return $http.get(CONSTANTS.LINK+'/authenticate/user');
}, function(data) {
var alertPopup = $ionicPopup.alert({
title: 'Error Logging in',
template: 'Invalid Credentials'
});
alertPopup.then(function(res) {
});
}).then(function(response) {
var user = JSON.stringify(response.data.user);
localStorage.setItem('user', user);
$rootScope.authenticated = true;
$rootScope.currentUser = response.data.user;
$state.go('tabs.home');
});;
现在这是我的app.js.什么都没发生。我做对了吗? 当我尝试 console.log($ rootScope.currentUser)时, $ rootscope.currentUser 也会返回 undefined ;
.state('tabs', {
url: '/tab',
templateUrl: function ($rootScope) {
if($rootScope.currentUser.role == 'Patient') {
return 'templates/tabs.html';
} else if ($rootScope.currentUser.role == 'Doctor') {
return 'templates/tabs-doctors.html';
}
},
abstract: true,
})
答案 0 :(得分:2)
由于我在登录时将用户数据存储在本地存储中,因此我使用该数据来检查用户的角色。
.state('tabs', {
url: '/tab',
templateUrl: function () {
var user = JSON.parse(localStorage.getItem('user'));
role = user.role;
if(role == 'Patient') {
return 'templates/tabs.html';
} else if (role == 'Doctor') {
return 'templates/tabs2.html';
} else {
return 'templates/tabs.html';
}
},
abstract: true,
})