我想在用户关闭窗口之前保存更改,但是当我退出选项卡时它不起作用。我正在使用路由器的 canDeactivate 方法,当我用 F5 刷新页面时它可以工作,但是当我关闭选项卡时,数据不会保存。这是我的组件中的 canDeactivate 函数:
@HostListener('window:beforeunload')
canDeactivate(): Observable<boolean> | boolean {
let subject = new Subject<boolean>();
let observable = subject.asObservable();
this.service.save(this.data).then(() => {
subject.next(true);
});
return observable.first();
}
我也已经尝试过了:
@HostListener('window:beforeunload')
canDeactivate(): Observable<boolean> | boolean {
let xmlhttp = new XMLHttpRequest(); // new HttpRequest instance
xmlhttp.withCredentials = false;
xmlhttp.open("PUT", "http://localhost:8080/rest/api");
xmlhttp.setRequestHeader("Content-Type", "application/json");
xmlhttp.setRequestHeader("Accept", "application/json");
xmlhttp.send(this.data);
return false;
}