FormBuilder-读取文件时的验证

时间:2018-11-20 09:27:10

标签: javascript angular typescript

我有一个CRUD Web表格,用于添加,编辑,删除...,以便使用FormBuilder进行表单验证。

this.saisieForm = this.fb.group({
    'val1': ['', Validators.required],
    'val2': ['', Validators.required],
    'val3': ['', [Validators.required, ValidateVal1]],
    'val4': new FormControl(''),
}, {validator: ValidatorsSaisies.validateMontant(Validators.required, ['val3', "val4"])});

我想导入CSV文件以添加行并使用相同的验证方法(例如表单)。

readFile(file: File) {
    let isFirstLine:boolean = true;
    var reader = new FileReader();
    let fileBuffer = "";
    reader.onload = () => {
    let lines = reader.result.split("\n");
    for(let line of lines)
    {
        if(!isFirstLine) {
        let valSaisie:ValSaisie = ValSaisie.pivotCsvToSaisieVal(line, this.lst1, this.lst2);
        this.valSaisies.push(ValSaisie.pivotCsvToSaisieVal(line, this.lst1, this.lst2);

        this.valSaisie = ValSaisie.pivotCsvToSaisieVal(line, this.lst1, this.lst2);

        this.saisieForm.get('val1').setValue(opeSaisie.val1);
        console.log("+++++"+this.saisieForm.get('val1').value);
        this.saisieForm.get('val2').setValue(opeSaisie.val2);
        this.saisieForm.get('val3').setValue(opeSaisie.val3);
        this.saisieForm.get('val4').setValue(opeSaisie.val3);

        console.log(this.saisieForm);

        if (this.saisieForm.invalid )
        {
            console.log("++++++++++++++++I Am Invaliddddd");
            //console.log(this.saisieForm);
        }
        }else {
            isFirstLine = false;
        }

    }
    };
    reader.readAsText(file);
}

我的表格始终是无效的...。

console.log("+++++"+this.saisieForm.get('val1').value); --> I have the value
console.log(this.saisieForm); --> all the values are nulls ... 

1 个答案:

答案 0 :(得分:1)

在值更改后,尝试对表单和单个updateValueAndValidity()调用FormControl方法。