获取异步管道表单值的值(在输入的value属性中可观察)

时间:2017-09-20 16:11:14

标签: forms angular angular2-observables angular-reactive-forms

我有文本表单输入,我希望它们作为表单,并显示提交表单时设置的值。问题是,当我提交表单,并获取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'时,如何在提交表单后在输入字段内呈现值?

这是表单输出: form values are observables

here is an example of my code*(*请在单独的窗口或分支中编辑此代码,以便所有版本保持相同)

1 个答案:

答案 0 :(得分:0)

我查看了实时示例,我可以通过删除异步管道并使用patchValue设置表单来使其工作。请参阅分叉版本:

https://stackblitz.com/edit/angular-ipe8hd

这是否达到了你想要的效果?我认为你根本不需要[value]或使用异步管道...... fork的代码更少。让我知道这是否是你想要的功能,如果你想以某种方式看它。