在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 @input和生命周期挂钩
- 2. Angular 2中的生命周期钩子
- 3. 完全加载的Angular2生命周期钩子?
- 4. Debounce Angular ngDoCheck生命周期钩子
- 5. 角生命周期钩
- 6. Angular2生命周期钩子工作本地数据,但不是API数据
- 7. Angular 2或4,生命周期钩子是对的?
- 8. JBoss ESB Action是否有生命周期?
- 9. Angular-cli生命周期钩子不在导航中调用
- 10. Vue.js v-cloak的生命周期挂钩
- 11. Ember组件生命周期钩子方法 - 是否必须调用super?
- 12. Cordova CLI生命周期 - 挂钩订单
- 13. 如何在VueJS生命周期钩子内设置数据
- 14. Angular 2指令的生命周期钩子(ngAfterContentInit)不能像文档
- 15. 离子生命周期没有开火
- 16. java applet:哪些线程调用生命周期钩子?
- 17. Angular 2 ngFor Update查看生命周期钩子
- 18. 哪个生命周期钩子用于初始化?
- 19. 使用角度2生命周期钩子方法
- 20. 角度如何实际触发生命周期钩子?
- 21. 如何将数据从一个生命周期钩子传递到另一个生命周期
- 22. Build.DEVICE在设备的生命周期中是否为常量?
- 23. Angular 2 - 在ngOnInit生命周期钩子中使用@input测试一个组件
- 24. JSF生命周期,如何在生命周期的中期完成响应?
- 25. 使用@Input装饰器触发Angular 2中的ngOnChanges生命周期钩子
- 26. 怎样才能趁着骡子的生命周期
- 27. 骡子活动的生命周期
- 28. 子活动的生命周期
- 29. reactjs生命周期是否有可视流程图?
- 30. 生命周期Android插件gradle这个
怎么样的'窗口。 onbeforeunload'方法?它怎么不起作用? –
不幸的是,所有3个选项都不起作用。 它必须在父组件上吗?在子组件上,它不会触发事件。例如:window.onbeforeunload = function(e){ alert('Event triggered!');} –
我更新了我的问题。代码(最后一个变体)显示我在Chrome浏览器中离开页面时的对话框。 –