在我的应用中,我想在首页加载之前解决一些问题。在我的其他页面上,我很容易,因为我在我的决心中使用此功能:
userAccount.$inject = ['userService','authService'];
function userAccount(userService, authService) {
return authService.firebaseAuthObject.$requireAuth()
.then(function(response) {
return userService.getAccount(response.uid).$loaded();
});
}
它需要授权,一旦提交了promise,它就会获取firebase中保存的其他用户数据。如果承诺被撤销,它将不会加载该页面。
但是在主页上我想检查用户是否已登录,如果用户已登录,请抓取用户数据并转到页面。但是如果用户没有登录,仍然只是用户数据将为空页面。
我目前正在使用它来检查Auth:
checkAuth.$inject = ['userService', 'authService'];
function checkAuth(userService, authService) {
return authService.firebaseAuthObject.$waitForAuth()
}
哪个有效,但我仍然想在用户登录之前加载页面之前解析用户数据。
我认为这是我的答案:
checkAuth.$inject = ['userService','authService'];
function checkAuth(userService, authService) {
return authService.firebaseAuthObject.$waitForAuth()
.then(function(response) {
return checkAuth.getAccount(response.uid).$loaded();
});
}
哪会等待承诺然后加载用户数据,但遗憾的是这不起作用。
有关如何在$ waitforauth()函数运行后检索用户数据的任何想法,关键是我想在页面加载之前解析这些数据。
谢谢你们
我的状态也不起作用:
.state('home', {
url: '/',
templateUrl: '/views/main.html',
controller: 'MainCtrl as vm',
resolve: {
checkAuth: checkAuth,
userAccount: function(checkAuth){
console.log(checkAuth);
if(checkAuth){
// grab user data
} else {
return false;
}
}
}
})
答案 0 :(得分:2)
这让我完成了。
州:
userAccountMain.$inject = ['userService', 'authService'];
function userAccountMain(userService, authService) {
return authService.firebaseAuthObject.$waitForAuth()
.then(function(response){
if(response){
return userService.getAccount(response.uid).$loaded();
} else {
return false;
}
});
}
功能:
java.lang.ArrayIndexOutOfBoundsException: -1
at WordLengths.countWordLengthsWithIsLettermethod(WordLengths.java:126)
at WordLengths.testWordLengths(WordLengths.java:152)