在Angular2中是否有像window.onbeforeunload這樣的生命週期鉤子? 我已經一派,搜索的計算器,但一無所獲在Angular2中是否有像window.onbeforeunload這樣的生命週期鉤子?
回答
<div (window:beforeunload)="doSomething()"></div>
或
@Component({
selector: 'xxx',
host: {'window:beforeunload':'doSomething'}
..
)}
或
@Component({
selector: 'xxx',
..
)}
class MyComponent {
@HostListener('window:beforeunload')
doSomething() {
}
}
這是怎麼聽的全球性事件。我不知道這個事件的特殊行爲是否支持返回值用作構造對話框的文本。
,您仍然可以使用
export class AppComponent {
constructor() {
window.onbeforeunload = function(e) {
return 'Dialog text here.';
};
}
}
喜歡這裏解釋https://developer.mozilla.org/de/docs/Web/API/WindowEventHandlers/onbeforeunload
岡特Zöchbauer的答案是稍有不當就一點算,這是爲我工作:
@Component({
selector: 'xxx',
..
)}
class MyComponent {
@HostListener('window:beforeunload', ['$event'])
doSomething($event) {
if(this.hasChanges) $event.returnValue='Your data will be lost!';
}
}
與Günter's有兩個主要區別答案:
到@HostListener
的參數應該是window:beforeunload
而不是window:onbeforeunload
- 處理程序不應該返回的消息,而應該將其分配到
$event.returnValue
代替
此代碼適用於我。不幸的是,當我關閉標籤時,這不會在我的android手機中執行。有什麼建議麼? – brijmcq
https://stackoverflow.com/questions/35779372/window-onbeforeunload-doesnt-trigger-on-android-chrome-alt-solution可能有幫助 –
當'returnValue'不是'null'時,對話框會顯示。而且大多數交叉口現在向用戶顯示一條通用信息。所以你無法改變它。 –
- 1. 是否有可能在angular2中停止生命週期鉤子?
- 2. Angular2 @input和生命週期掛鉤
- 3. Angular2路由器生命週期掛鉤
- 4. Angular 2中的生命週期鉤子
- 5. 完全加載的Angular2生命週期鉤子?
- 6. Debounce Angular ngDoCheck生命週期鉤子
- 7. 角生命週期鉤
- 8. HABTM生命週期掛鉤
- 9. ReactJS:this.state在生命週期鉤子上是未定義的
- 10. Angular2生命週期鉤子工作本地數據,但不是API數據
- 11. angular2組件生命週期
- 12. Angular 2或4,生命週期鉤子是對的?
- 13. JBoss ESB Action是否有生命週期?
- 14. Angular-cli生命週期鉤子不在導航中調用
- 15. 爲什麼ngOnInit不是第一個生命週期鉤子?
- 16. Vue.js v-cloak的生命週期掛鉤
- 17. Ember組件生命週期鉤子方法 - 是否必須調用super?
- 18. Cordova CLI生命週期 - 掛鉤訂單
- 19. 如何掛鉤Cucumber-Java生命週期
- 20. 誤解生命週期鉤VueJS
- 21. 如何在VueJS生命週期鉤子內設置數據
- 22. 加載ngModel後的生命週期鉤子
- 23. Angular 2指令的生命週期鉤子(ngAfterContentInit)不能像文檔
- 24. 在Eclipse中是否有像Vim的「o」這樣的命令?
- 25. 離子生命週期沒有開火
- 26. java applet:哪些線程調用生命週期鉤子?
- 27. Angular 2 ngFor Update查看生命週期鉤子
- 28. 哪個生命週期鉤子用於初始化?
- 29. 角度如何實際觸發生命週期鉤子?
- 30. vuejs2 beforeUpdate生命週期鉤子觸發兩次
怎麼樣的'窗口。 onbeforeunload'方法?它怎麼不起作用? –
不幸的是,所有3個選項都不起作用。 它必須在父組件上嗎?在子組件上,它不會觸發事件。例如:window.onbeforeunload = function(e){ alert('Event triggered!');} –
我更新了我的問題。代碼(最後一個變體)顯示我在Chrome瀏覽器中離開頁面時的對話框。 –