How to set value in array form with Angular

前端 未结 3 1314
情深已故
情深已故 2021-01-01 01:57

I want to set value in array like this:

this.form.controls[name].setValue(\'name\')

but I am working w

3条回答
  •  旧时难觅i
    2021-01-01 02:31

    If you're getting the error "ERROR Error: Cannot find control with path: 'addresses -> 0 -> addressType'" or something similar, it's most likely cause you're passing the values in but your html template is expecting values along with a control name.

    To resolve this, iterate over each item in your array, and create a new form group instance for each value - based on what your view is expecting - then push to a new array variable, which we then set in our form.

    See code below:

    var tagsArray = [];
    this.product.tags.forEach(product => tagsArray.push(this.fb.group({tag: [product.tag, [Validators.required]]})));
    this.productForm.setControl('tags', this.fb.array(tagsArray || []));
    

    Referenced in view like so:

    This lets you load previous results while enabling the ability to add more values and validate user input.

    Hope this helps.

提交回复
热议问题