当我构建CanDeactivateGuard时出现此错误。
未捕获(承诺中):TypeError:component.canDeactivate 不是函数
我想让我的CanDeactivateGuard可重复使用,所以它应该是通用的。
因此,我构建了一个名为ComponentCanDeactivate的抽象类,然后在TreeCanDeactivateGuard中扩展它。
然后CanDeactivateGuard应该实现CanDeactivate接口。
我的代码:
import { HostListener } from '@angular/core';
export abstract class ComponentCanDeactivate {
public abstract canDeactivate(): boolean;
@HostListener('window:beforeunload', ['$event'])
unloadNotification($event: any) {
if (!this.canDeactivate()) {
$event.returnValue = true;
}
}
Run Code Online (Sandbox Code Playgroud)
}
TreeCanDeactivateGuard :
import { ComponentCanDeactivate } from './canDeactivate/component-can-deactivate';
import { NodeService } from '../tree/node.service';
export abstract class TreeCanDeactivateGuard extends ComponentCanDeactivate {
constructor(private _nodeService: NodeService) {
super();
}
public canDeactivate(): boolean {
if …Run Code Online (Sandbox Code Playgroud)