我在我的角应用中使用了UI-Router。我也在运行多个分阶段的决议。让我解释。我希望第一个决心发生,一旦承诺被退回,我想激活第二个决心。到目前为止,这是我的解决方案。
.state('tab.profile', {
url: '/profile',
reload: true,
cache: false,
views: {
'tab-profile': {
templateUrl: 'templates/tabs/profile.html',
controller: 'ProfileController as profile',
resolve: {
signedInUser: function (UserRecord) {
return UserRecord.retrieve( )
},
currentUser: function (signedInUser, User) {
//signedInUser is returned as null
if (signedInUser) {
return User.show({id: signedInUser.user_id}).$promise;
} else {
return false;
}
}
}
}
}
})
这是我的UserRecord.retrieve
方法。
function retrieve() {
var q = $q.defer();
var query = 'SELECT user_credentials, user_id FROM Users;';
$ionicPlatform.ready(function (){
$cordovaSQLite.execute(db, query).then(function(res) {
if (res.rows.length > 0) {
console.log("found user");
console.log(JSON.stringify(res));
q.resolve(res.rows[0]);
} else {
console.log("no rows found");
q.resolve(false);
}
}, function (err) {
q.reject(err);
});
});
return q.promise;
}
问题是第一个进入的解决方案返回为null。我不完全确定我错了什么或我错过了什么步骤。