微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在 Angular 中重新初始化组件或强制它再次运行 ngOnInit()

如何解决在 Angular 中重新初始化组件或强制它再次运行 ngOnInit()

我在 Angular 中有一个表格组件,它根据用户的要求获得不同的数据,然后填充表格。表格变得相对复杂,当用户要求不同的东西时,我需要整个组件基本上刷新。当用户更改父组件上的选择时,有没有办法强制组件重新初始化?或者可能杀死组件以便它必须重新加载?我对 Angular 比较陌生,所以我仍在努力学习组件生命周期的工作原理,我们将不胜感激。

解决方法

在您的组件中创建一个实用程序函数,只需确保您的新状态所需的所有数据都已准备就绪。

redirect(uri:string){
   this.router.navigateByUrl('/',{skipLocationChange: true}).then(()=>
   this.router.navigate([uri]));
}

然后像这样使用它

this.redirect('//place your uri here');

此功能会重定向到一条虚拟路由,并在用户没有意识到的情况下快速返回到目标路由。

方法二: 您可以订阅路由器的导航事件。

 this.navigationSubscription = this.router.events.subscribe((e) => {
      // If it is a NavigationEnd event re-initialize the component
      if (e instanceof NavigationEnd) {
            // implement your refresh logic here 
          }
        }
      }
    });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。