【问题标题】:Angular getRawValue() does not fetch [values] from reactive formAngular getRawValue() 不会从反应形式中获取 [values]
【发布时间】:2018-10-10 17:24:32
【问题描述】:

我有一个角反应形式,除了许多其他控件之外,我有两个我无法获得 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 相同...

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

有什么想法吗?

【问题讨论】:

    标签: angular angular-reactive-forms


    【解决方案1】:

    试试

    this.createRequestForm.value.val1

    获取createRequestForm(表单)字段的值

    【讨论】:

    • 这是唯一的方法吗?我将 JSON 发送出去,并且必须进行一些拼接才能将这些包含在内...我在想我连接这些控件的方式可能有问题,修复 html 将在表单中包含这些值...
    • 还定义了一个函数 get f() { return this.createRequestForm.controls;并使用函数以反应形式获取值
    • 有很多方法,但如果你愿意,我已经分享了我在反应形式中使用的内容,我可以分享我的代码。
    • 我只是按照我之前的想法去做...我将在 http 调用订阅中手动分配这些值...例如:this.createRequestForm.get('Val1' ).setValue(this.valModel.val1);与 val2 相同。不过还是谢谢。
    猜你喜欢
    • 2018-11-30
    • 1970-01-01
    • 2019-09-11
    • 2019-02-18
    • 1970-01-01
    • 1970-01-01
    • 2023-03-21
    • 1970-01-01
    • 2018-01-29
    相关资源
    最近更新 更多