首页 > 解决方案 > Angular getRawValue() 不会从反应形式中获取 [values]

问题描述

我有一个角度反应形式,除了许多其他控件之外,我有两个我无法获得 onSubmit() 的值。

参见 Val1 和 Val2:

buildForm() {
        this.createRequestForm = this.form.group({
            Name: ['', [Validators.required, CustomValidatorService.validateCharacters]],
            Comments: ['', [CustomValidatorService.validateCharacters]],
         …
            Val1: [{ value: '', disabled: true }],
            Val2: [{ value: '', disabled: true }],

HTML:

<input name="Val1" matInput formControlName="Val1" placeholder="Val 1" [value]="valModel?.val1"> 

...和 ​​val2 相同。

这是我填充 val1 和 val2 的方式

    this.createRequestForm.get('Name').valueChanges
        .subscribe(value => {
            if (value && value.length === 6) {
                this.commonHttpService.getValDetails(value)
                    .subscribe(valModel => this.valModel = valModel);
            }
        }); 

正如您所看到的 val1 和 val2 的值来自一个 http 调用,它将结果绑定到 this.valModel 并自动填充表单。

一切正常,屏幕上填充了值,但是当我尝试使用提交表单时

.getRawValue()

它显示 val1="" 和相同的 val2...</p>

我想这是我将这些值绑定到控件的方式?

任何想法?

标签: angularangular-reactive-forms

解决方案


尝试

this.createRequestForm.value.val1

获取 createRequestForm (form) 字段的值


推荐阅读