我需要创建一个简单的确认窗口,我看到了很多示例,可以通过额外的操作(例如等待表单文件上传完成)来完成。但是我只需要创建一个默认确认窗口,并显示默认文本(如下图所示),以在用户希望离开当前页面时显示该窗口。而我完全不理解在处理 beforeunload
事件时应该提供什么逻辑。
如果这是重复问题,我最近很抱歉,但我没有找到任何解决方案。因此,我有:
example.guard.ts
export interface CanComponentDeactivate {
canDeactivate: () => Observable<boolean> | boolean;
}
@Injectable()
export class ExampleGuard implements CanDeactivate<CanComponentDeactivate> {
constructor() { }
canDeactivate(component: CanComponentDeactivate): boolean | Observable<boolean> {
return component.canDeactivate() ?
true :
confirm('message'); // <<< does confirm window should appear from here?
}
}
example.component.ts
export class ExampleComponent implements CanComponentDeactivate {
counstructor() { }
@HostListener('window:beforeunload', ['$event'])
canDeactivate($event: any): Observable<boolean> | boolean {
if (!this.canDeactivate($event)) {
// what should I do here?
}
}
}
如果您能提供代码示例,那将非常棒,但我也感激任何形式的帮助。
(click)="functionName()"
,该属性指向您想要调用的函数。 - user3606237