我使用MatDialog打开其他组件:
const dialogRef = this.dialog.open(UserSaveComponent, dialogConfig)
是否可以添加canActivate Guard来在打开对话框之前检查用户是否已登录?
UserSaveComponent不会出现在任何路由中,因为仅在对话框中使用。 也许我应该使用其他方法?
更新
目前,我通过在打开对话框之前检查用户是否已获得授权来解决该问题:
if (this.authService.isLoggedIn()) {
const dialogConfig = ...
const dialogRef = this.dialog.open(UserSaveComponent, dialogConfig);
dialogRef.afterClosed().subscribe(user => {
if (user) {
this.user = user;
}
})
} else {
this.authService.logout();
}
我正在考虑为打开对话框的方法编写和使用装饰器,而不是使用if / else