angular - 路由更改后可观察对象未重置为初始状态?
问题描述
我有一个可观察到的数据流绑定到网格数据源的数据流,如下所示,当一个项目被选中时,网格数据填充群,但是当我导航到应用程序的其他路由并导航返回相同的路线时,我可以看到我是我是变量的变量using 正在重新声明和重新初始化,但 observables 不是因为它们使用 combineLatest,我认为网格将始终绑定到源 observable 发出的最新项目。有没有一种方法可以在路由更改期间将此可观察对象重置为初始状态,而无需调用 Subject 的 next() 方法。
selectedMasterPlan$ = combineLatest([this.masterPlans$, this.commissionPlanService.masterPlanChange$]).pipe(
map(([plans, id]) => {
const plan = plans.filter(x => x.masterPlanId === id);
if (plan.length > 0) {
return plan[0];
}
return null;
}));
1) this.commissionPlanService.masterPlanChange$ 更改是一个可观察到的操作流,绑定到模板中的用户选择。
2) this.masterPlans$ 是一个可观察的数据流。
我认为将这些声明移至 ngOnInit 会有所帮助,但我不想使用 ngOnInit。
解决方案
推荐阅读
- java - remember username and password checkbox
- c++ - Visual Studio 15.7 Update: change in constructor inheritance
- javascript - Pubnub sending messages multiple times
- android - Firebase Auth getIdToken 更新后卡住了
- r - 我想在 R 中编写一个计算岭回归标准的方程
- hikaricp - 快速数据的 spring.datasource.driver-class-name
- python - RDD map+sortByKey - 错误理解列表python
- string - 在带有 VBA 的文本中查找单词(但不在另一个单词中)
- assembly - x86 程序集中的冲突符号:movsx 然后是无符号比较/分支?
- nuget - 上游包未显示在 VSTS 包管理中