Mar*_*cus 2 typescript angular angular9
我在路由器 NavigationEnd 上使用订阅,如下所示:
this.router.events
.subscribe((event) => {
if (event instanceof NavigationEnd) {
this.getData();
}
});
Run Code Online (Sandbox Code Playgroud)
在同一路线中导航时,我需要它来更新页面数据,例如 /product1 和 /product2 使用相同的组件和路线,并在自定义路线服务中处理
这是为了当同一组件中的路由更新时获取数据,并且它按预期工作
问题是 this.getData() 在导航到另一个组件时也会运行,这会在我导航到的组件中产生很多问题,并且我还从服务器运行不必要的获取
所以问题是:当我离开组件时,我可以取消订阅路由器,这样 this.getData() 就不会运行吗?
您可以Subscription在Observables中使用
首先初始化你的组件
navigationSubs = new Subscription();
this.navigationSubs = this.router.events
.subscribe((event) => {
if (event instanceof NavigationEnd) {
this.getData();
}
});
Run Code Online (Sandbox Code Playgroud)
销毁时或任何您想要的时候
this.navigationSubs.unsubscribe();
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2103 次 |
| 最近记录: |