我有一个依赖的http调用的实现,它的运行就像一个魅力。问题是我想使用解析器来调用填写表格的数据,在此应用程序之前简单地显示微调器加载,直到加载了所有数据,但是使用解析器,我会将所有数据加载在一起,所以我想选择它,问题是我不知道我的方法是否好。
这是我在表单组件中的派生联接
forkJoin([this.service.getProvince(), this.service.getLingueStraniere(), this.service.getTitoliPreferenziali(), this.service.getRiserve()])
.pipe(switchMap(result => {
console.log('Province', result[0]);
console.log('LingueStraniere', result[1]);
console.log('TitoliPreferenziali', result[2]);
console.log('Riserve', result[3]);
return this.service.getDomanda();
}))
.subscribe((domanda: any) => {
this.popolaForm(domanda);
},
(error: AppError) => {
if (error instanceof NotFoundError) {
console.log('Error richiesta http');
} else {
console.log(error);
}
});
在调用最后一个http调用“ getDomanda()”之前,我用列表填充了一些过滤器表单,然后在我用最后一次调用填充了主表单,因此要进行最后一次调用,我需要先填充过滤后的表单。 先前的分叉联接应移至解析器。如何将第一个数据传递给下拉列表,然后传递给表单?请注意,下拉过滤列表也是主表单组的一部分
这应该是在解析器中编写的代码,是安全的实现,还是我应该在表单组件中使用forkjoin?谢谢。
constructor(private service: DataService) { }
resolve(route: ActivatedRouteSnapshot,
state: RouterStateSnapshot): Observable<Data> {
return forkJoin([this.service.getProvince(), this.service.getLingueStraniere(), this.service.getTitoliPreferenziali(), this.service.getRiserve()])
.pipe(switchMap(result =>
return this.service.getDomanda();
}));
}