当我添加一个返回Observable或Promise(在这种情况下是一个promise)的canActivate时,路由正常工作,但似乎阻止了诸如(点击)事件,管道无法正常工作等等......一旦我使canActivate返回true,这些函数都可以正常工作。有什么建议吗?
canActivate
canActivate(route: ActivatedRouteSnapshot, state: RouterStateSnapshot): Observable<boolean> | boolean | Promise<boolean> {
return Stamplay.User.currentUser()
.then((res) => {
if (res.user) {
return true;
} else {
this.router.navigate(['/login']);
return false;
}
}).catch(() => {
this.router.navigate(['/login']);
return false;
});
例如,素材搜索不适用于canActivate,但在我返回true或将canActivate取出时效果很好。
答案 0 :(得分:1)
Following my comment, return Promise.resolve(true)
and Promise.reject(false)
instead of returning true and false.