我有文本表单输入,我希望它们作为表单,并显示提交表单时设置的值。问题是,当我提交表单,并获取start(form.controls.start.value
)的值时,我得到一个错误,因为当我在控制台中查看表单时,该值是一个可观察的值。错误说cannot get value of undefined
。
我有可观察的start$
,它使用当前值填充我的输入:
<div class="col">
Pool Start:
</div>
<div class="col">
<input
type="text"
class="form-control"
formControlName="start"
[value]="start$ | async"
>
</div>
它是表单的一部分:
this.dhcpForm = this.formBuilder.group({
'start': [this.start$],
'end': [this.end$],
'lease': [this.lease$]
});
这是我的提交函数,分配表单值:
console.log(dhcpForm);
const start = dhcpForm.controls.start.value;
const end = dhcpForm.controls.end.value;
const lease = dhcpForm.controls.lease.value;
再次重复我的问题,当值为'observable'时,如何在提交表单后在输入字段内呈现值?
here is an example of my code*(*请在单独的窗口或分支中编辑此代码,以便所有版本保持相同)
答案 0 :(得分:0)
我查看了实时示例,我可以通过删除异步管道并使用patchValue设置表单来使其工作。请参阅分叉版本:
https://stackblitz.com/edit/angular-ipe8hd
这是否达到了你想要的效果?我认为你根本不需要[value]或使用异步管道...... fork的代码更少。让我知道这是否是你想要的功能,如果你想以某种方式看它。