我有一些代码ngOnInit,它使用路由变量来过滤特定对象的可观察数组:
this.route.paramMap.subscribe(params => { // Wrapper to get route param (ID)
this.store.dispatch(new fromStore.LoadObjects());
this.object$ = this.store.select(fromStore.getAllObjects).pipe(
map(
objects => objects.filter(o => o.id === params.get('id'))[0]
)
);
})
然后我将执行以下操作以初始化表单:
this.objectDataForm = this.formBuilder.group({
'name': ['', Validators.required ],
'location': ['', Validators.required ]
});
我想以某种方式将我的可观察对象连接到表单数据以作为默认值输入。我想我需要patchValue:
this.objectDataForm.patchValue({
name: myValue1,
location: myValue2
});
但是我无法弄清楚如何将这个补丁值放置在一个可以在适当的时间获取该值并将其传递到表单的地方。我很容易对此感到讨厌...
答案 0 :(得分:0)
您可以使用awaitResult
运算符。参见here。
流为:
take(1)
流创建订阅object$.pipe(take(1))
patchValue
流时跳过此初始设置,则可能要致电.patchValue({ ... }, { emitEvent: false })