Невозможно установить значение для formControl из метода ngOnInit - PullRequest
3 голосов
/ 23 октября 2019

Я взял пример выбора материала и попытался установить значение по умолчанию из метода ngOnInit следующим образом:

ngOnInit(): void {
  this.animalControl.setValue({name: 'Cat', sound: 'Meow!'});
}

Но в выборке не отображается значение по умолчанию (есть только мяу). Я не знаю почему.

stackblitz

Ответы [ 3 ]

3 голосов
/ 23 октября 2019

Ошибка здесь не в том, что ваш FormControl неправильно заполнен на ngOnInit, а в том, что вместо этого ваш ngFor фильтрует список animals: Animal[], который имеет ссылку, отличную от вашего нового объекта {name: 'Cat', sound: 'Meow!'}, если вы вместо этогопередайте объект в вашем списке животных, он будет иметь правильную ссылку и правильно отобразит значение имени животного.

Пример:

ngOnInit(): void {
  this.animalControl.setValue(this.animals[0]);
}
1 голос
/ 23 октября 2019

Здесь работает пример

Вместо того, чтобы передавать новый объект, вы должны передать данные массива

ngOnInit(): void {
    this.animalControl.setValue(this.animals[0]);
  }
1 голос
/ 23 октября 2019

Вместо

this.animalControl.setValue({name: 'Cat', sound: 'Meow!'});

установите значение animalFormControl путем вызова массива животных. Обновите свой код, просмотрев приведенную ниже реализацию

this.animalControl.setValue(this.animals[1]);
...