patchValue для установки значения и отключения поля - PullRequest
0 голосов
/ 04 июля 2019

Я помещаю FormArray с некоторыми значениями, и мне нужно динамически устанавливать отключенное свойство в определенных полях после загрузки списка. Мой вопрос: есть ли способ установить значение и установить отключенное свойство, используя только patchValue?

Я пробовал что-то вроде этого

  this.rowList.forEach((el, index) => {
              this.rowArray.push(
                this.fb.group(
                  {
                    name: new FormControl(el.name, [
                      Validators.required,
                      Validators.maxLength(30),
                      Validators.pattern(this.BAN_SPECIAL_BUT_UNDERSCORE)
                    ]),
                    source: new FormControl(el.source, Validators.required)
.....

и после этого

    if (this.rowArray.controls[index].get("source").value === "CSV") {
                this.rowArray.controls[index].patchValue({
                  format: "NUMBER",
                  disabled: true
                });
              }

rowList - это моя матрица из backEnd.

1 Ответ

1 голос
/ 04 июля 2019

Вы можете динамически настроить отключение FormControl с помощью метода disable().

Как указано в документации , patchValue() не будет работать, так как он используется толькодля установки значений (а не состояния) вашего FormControl.

Исправляет значение FormGroup.Он принимает объект с именами элементов управления в качестве ключей и делает все возможное, чтобы сопоставить значения с правильными элементами управления в группе.

this.rowArray.controls[index].get('source').disable();
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...