Gibt es einen Lebenszyklus-Haken wie window.onbeforeunload in Angular2? ich schon gegoogelt und gesucht auf Stackoverflow, aber nichts gefundenGibt es einen Lifecycle-Hook wie window.onbeforeunload in Angular2?
Antwort
<div (window:beforeunload)="doSomething()"></div>
oder
@Component({
selector: 'xxx',
host: {'window:beforeunload':'doSomething'}
..
)}
oder
@Component({
selector: 'xxx',
..
)}
class MyComponent {
@HostListener('window:beforeunload')
doSomething() {
}
}
Dies ist, wie man globale Ereignisse zu hören. Ich weiß nicht, ob das spezielle Verhalten dieses Ereignisses unterstützt wird, wenn der Rückgabewert als Text für den Konformitätsdialog verwendet wird.
Sie können immer noch
export class AppComponent {
constructor() {
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
}
}
Wie hier https://developer.mozilla.org/de/docs/Web/API/WindowEventHandlers/onbeforeunload erklärt
Günter Zöchbauer verwenden Antwort auf zwei eine Zählung etwas falsch ist, das ist, was für mich gearbeitet:
@Component({
selector: 'xxx',
..
)}
class MyComponent {
@HostListener('window:beforeunload', ['$event'])
doSomething($event) {
if(this.hasChanges) $event.returnValue='Your data will be lost!';
}
}
Es gibt zwei Hauptunterschiede von Günter Antwort:
Das Argument@HostListener
solltewindow:beforeunload
sein und nichtwindow:onbeforeunload
- Der Handler die Nachricht nicht zurückkehren sollte, aber es sollte in
$event.returnValue
statt
Dieser Code funktioniert für mich. Leider wird dies nicht in meinem Android-Handy ausgeführt, wenn ich den Tab schließe. Irgendwelche Vorschläge? – brijmcq
https://stackoverflow.com/questions/35779372/window-onbeforeunload-doesnt-trigger-on-android-chrome-alt-solution könnte helfen –
ein Dialog zeigt, wenn der 'returnValue' etwas anderes als' null' ist. Und die meisten Broswers zeigen dem Benutzer jetzt eine generische Nachricht an. Sie können es also nicht ändern. –
- 1. Warum gibt IE11 einen Fehler bei der Verwendung von window.onbeforeunload?
- 2. Gibt es einen aktualisierten Lifecycle-Hook für Angular2?
- 3. Gibt es eine JavaScript nicht definierte Eigenschaft wie in Angular2
- 4. Es gibt keine ng-init für Angular2
- 5. window.onbeforeunload und window.location.href in IE
- 6. window.onbeforeunload Ausführen von Abfrage
- 7. window.onbeforeunload Nachricht Lokalisierung
- 8. Gibt es eine Möglichkeit, Array-Wert mit ngForm in angular2
- 9. Gibt es einen Identitätskanal?
- 10. Verwenden Sie window.onbeforeunload, um einen Doppelklick zu vermeiden
- 11. Äquivalenz von window.onbeforeunload in AngularJS für Routen
- 12. Gibt es einen umfassenderen Weg zur Authentifizierung in Angular2 RC3 als Wächter?
- 13. Wie man einen Serviceanruf in Angular2 ausspioniert
- 14. Gibt es eine Möglichkeit, window.onbeforeunload auf Mobile Safari für iOS-Geräte zu verwenden?
- 15. Gibt es einen Funktionstyp in C#?
- 16. Gibt es in Python einen "ungleich" Operator?
- 17. Gibt es einen NHibernate Killer?
- 18. Gibt es einen Destruktor in typeScript
- 19. Gibt es einen Vorlagen-Debugger?
- 20. Gibt es einen Parallelfund in Haskell?
- 21. Gibt es eine Möglichkeit, wrapbootstrap Themen mit Angular2 zu verwenden?
- 22. Gibt es einen Splat-Operator in Elixir?
- 23. Gibt es in Python einen logischen Operator?
- 24. Gibt es einen beschreibbaren Iterator in Java?
- 25. Gibt es einen Unterschied zwischen '=' und In?
- 26. Gibt es einen PHP-Validator?
- 27. Gibt es in C# einen Exponentenoperator?
- 28. Gibt es einen C++ Almanach?
- 29. Gibt es einen aktualisierten 'vimtutor'?
- 30. Angular2 benutzerdefinierte Richtlinie gibt
Was ist mit dem 'Fenster zuweisen. onbeforeunload' Ansatz? Wie funktioniert es nicht? –
Leider funktionieren alle 3 Optionen nicht. Muss es auf der Elternkomponente sein? Auf der untergeordneten Komponente wird das Ereignis nicht ausgelöst. Beispiel: window.onbeforeunload = funktion (e) { alert ('Ereignis ausgelöst!');} –
Ich habe meine Frage aktualisiert. Der Code (letzte Variante) zeigt den Dialog, wenn ich in Chrome von der Seite weg navigiere. –