如何在angular6中的Authguard中包含“角度材质”对话框

如何在angular6中的Authguard中包含“角度材质”对话框,angular,dialog,angular-material,angular6,Angular,Dialog,Angular Material,Angular6,当用户单击按钮打开angular material多个对话框时,我必须限制登录,我不知道如何使用angular authguard进行登录。Guards可以使用observable,因此您只需返回一个observable,它打开一个对话框,然后传递true或false 例如,在我关于canDeactivate guards的项目中,无论在哪种情况下,它是如何在相同的原则下工作的 canDeactivate( component: Component, curren

当用户单击按钮打开angular material多个对话框时,我必须限制登录,我不知道如何使用angular authguard进行登录。

Guards可以使用observable,因此您只需返回一个observable,它打开一个对话框,然后传递true或false

例如,在我关于canDeactivate guards的项目中,无论在哪种情况下,它是如何在相同的原则下工作的

canDeactivate(
        component: Component,
        currentRoute: ActivatedRouteSnapshot,
        currentState: RouterStateSnapshot,
        nextState?: RouterStateSnapshot
    ): Observable<boolean> | Promise<boolean> | boolean {
        // Opens a modal and returns an observable
        return this.ps.openModal({
            confirmMessage: confirmMessage,
            confirmHeader: confirmHeader,
            modalColor: modalColor,
            approve: approve,
            cancel: cancel,
            buttonsColor: buttonsColor
        });
}

如果对话框是一个单独的组件

    import {Injectable} from '@angular/core';
    @Injectable()
    export class AuthGuard implements CanActivate {

    canActivate(route) {
            // check if logged in here
      if(notLoggedIn) {
    this.router.navigate(['/update-password']);
     return false;

        }
return true


    }
如果不是单独的组件,则执行此操作

// button to open dialog
openDialog() {
 if(notLoggedIn) {
        this.router.navigate(['/update-password']);
         return false;

            }
}

问题还不清楚。如果我了解您的问题,可以在AuthGuard中打开“创建材质”对话框,并在单击按钮时调用“打开”对话框。AuthGuard用于保护管线和组件加载