1
ObservableまたはPromise(この場合は約束)のいずれかを返すcanActivateを追加すると、ルーティングは正しく動作しますが、(クリック)イベントなどをブロックするように見えます。パイプは機能しません正しく、等...これらの関数はすべて、canActivateを作るとすぐにtrueを返します。助言がありますか?例えばcanActivate PromiseブロックまたはObservableブロックの検出変更検出
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を取り出したときに完璧に動作しません。
解決済みの約束を返すことができます。 trueまたはfalseを返す代わりに、 'Promise.resolve(true)'と 'Promise.reject(false)'を返す – trichetriche
@trichetricheありがとうございました!私はそれが他の人に役立つと思うので、あなたが答えを出すならば、それを正しいものにすることができます。 –
問題はありませんでした、ありがとう、ありがとう – trichetriche