演示http://plnkr.co/edit/7uoVecfa62i8No8GtQHI?p=preview当我使用*ngIf隐藏带有嵌套组件的第一部分时,会触发每个嵌套组件的ngOnDestroy。控制台的输出是:initinitinitinitinitdestroydestroydestroydestroydestroy但是当我隐藏子组件被*ngFor复制的第二部分时,并不是每个ngOnDestroy都会被触发。控制台的输出是:(6)init(3)destroy如果我做错了什么,或者angular2有问题,你知道吗?谢谢。 最佳答案
我的ngOndestroy正在调用其他路由导航,但它没有在方法内部执行clearInterval。我哪里做错了?当我在其他组件中时,它在后台运行。timer:any;ngOnInit(){this.timer=this.interval();};ngOnDestroy(){clearInterval(this.timer);console.log("InsideDestroy");}interval(){setInterval(()=>{this.getData();},20000)}getData(){this.dataservice.getdata().subscribe(user
我有一个页面,该页面可以检查用户在离开它之前是否没有保存的更改。问题在于,即使使用预防违规()并返回false,用户仍然可以单击组件。有没有办法防止Ngondestroy或单击事件发生?笔记:用户不去其他路由,只是来自同一组件的另一个选项卡。ngOnDestroy(){if(this.myForm.dirty){letsave=confirm('Youareabouttoleavethepagewithunsavedchanges.Doyouwanttocontinue?');if(!save){window.event.preventDefault();returnfalse;}}}看答案你