canDeactivate与Observable

时间:2019-01-21 06:07:19

标签: angular angular-ui-router

我正在使用canDeactivate方法实现路由器防护。如果我返回了一个异步Observable,它将无法正常工作。

我执行的以下步骤。

创建后卫

@Injectable()
export class DeactivateGuardService implements CanDeactivate<CanComponentDeactivate> {
    canDeactivate(component: CanComponentDeactivate) {
            return component.canDeactivate() || window.confirm('Are you sure?');
          }
    }

export interface CanComponentDeactivate {
        canDeactivate: () => Observable<boolean> | Promise<boolean> | boolean;
      }

在component.ts中实现了该方法

canDeactivate(): Observable<boolean> | boolean{
   return of(false);
   // return false;
 }

如果我返回false,则工作正常,但如果返回of(false),则工作不正常。

请提出建议。

0 个答案:

没有答案