我已經實現了一個CanDeactivate
後衛,以避免用戶在上傳時離開頁面和它的作品。問題在於我的信息始終是默認信息(因爲瀏覽器語言,因此在荷蘭語中),甚至自己設置信息,仍然顯示相同的默認窗口confirm
。我想我自己寫的消息(其實我有我要顯示一個模式,但首先我想看看我的簡單的信息只是工作)CanDeactivate確認消息
任何想法可能是什麼?我錯過了什麼嗎? 在此先感謝!
這裏的代碼
衛隊。
import { Injectable, ViewContainerRef } from '@angular/core';
import { CanDeactivate } from '@angular/router';
import { Observable } from 'rxjs/Observable';
import { DialogService } from '../services';
export interface PendingUpload {
canDeactivate:() => boolean | Observable<boolean>;
}
@Injectable()
export class PendingUploadGuard implements CanDeactivate<PendingUpload> {
constructor(private dialogService: DialogService, private viewContainerRef: ViewContainerRef) { }
canDeactivate(component: PendingUpload): boolean | Observable<boolean> {
return component.canDeactivate()
? true
: confirm("Test custom message");
//dialog I want to use later
//this.dialogService.confirm("modal title", "modal body", this.viewContainerRef);
}
}
組件
import { Component, OnInit, HostListener } from '@angular/core';
import { Observable } from 'rxjs/Observable';
import { PendingUpload } from '../../shared/validators/pending-upload.guard';
import './../../rxjs-operators';
@Component({
selector: 'component-selector',
templateUrl: './html',
styleUrls: ['./css']
})
export class ScannerUploadComponent implements OnInit, PendingUpload {
uploading: boolean = false;
constructor() { }
ngOnInit() {
this.uploading = false;
}
@HostListener('window:beforeunload')
canDeactivate(): Observable<boolean> | boolean {
return !this.uploading;
}
}
埃爾默發現安德斯這個問題在這裏:角2 - 離開頁面之前警告的未保存的更改用戶](http://stackoverflow.com/questions/35922071/angular-2-warn-user-of-unsaved-我已經看到了這一點,仍然改變前方的離開頁/) –
給了我一個默認的消息文本(在荷蘭),而不是我的自定義消息....我使用指定的保護從角文檔和工作,但有一個bug像[this](https://github.com/angular/angular/issues/10321)..我很努力地完成這項工作,但直到現在還沒有成功。 –