在数组中构建禁用项时保留其值

问题描述 投票:0回答:1

我正在构建这样的表单数组:

buildAnimations(arr) {
        var resultArr = [];
        arr.forEach(x => {
            resultArr.push(this.fBuilder.group({
                name: [x.name, [Validators.required]],
                frameRate: [x.frameRate, [Validators.required]],
                loop: [x.loop],
                pickUpItemDelay: [x.pickUpItemDelay, x.type == 0 ? Validators.required : undefined],
                required: [x.required],
                type: [{ value: x.type, disabled: x.required == true ? true : false }, [Validators.required]],
                filesUploaded: [x.filesUploaded, Validators.requiredTrue]
            }))
        });
        return this.fBuilder.array(resultArr);
    }

但是保存时,我不记得"type"的真实值,因为它已被禁用。我知道如果我像这样遍历每个单独的记录,就可以记住该值:this.myForm.controls['type'].disable({onlySelf: true});,但是在构造和循环遍历数组时,有没有办法做到这一点?

我正在追寻类似的东西:type: [{ value: x.type, disabled: x.required == true ? true : false, onlySelf: true }, [Validators.required]],

angular
1个回答
0
投票

Angular FormGroup具有getRawvalue()方法,用于获取所有表单值以及禁用的控件。

尝试一下:

onSubmit(){
  this.myForm.getRawValue();
}
© www.soinside.com 2019 - 2024. All rights reserved.