Angular 7 Reactive Formarray раскрывающийся список - Как загрузить сохраненные данные обратно в форму пользовательского интерфейса - PullRequest
0 голосов
/ 25 мая 2019

Я перешел по ссылке переполнения стека каскадный выпадающий список в реактивном формате

и достиг желаемого результата. Кроме того, я хочу загрузить сохраненные данные из БД обратно в пользовательский интерфейс, когда пользователь снова попытается изменить параметры. Я почти достиг этого, но проблемы со вторым выпадающим списком. Нужна помощь по динамической загрузке колес [] для каждой строки formarray. Я сохраняю формат json как таковой в БД, получаю его и повторяю.

options: string - имя переменной в БД, в которой хранится formarray

private retrieveSavedControls(options: string): FormArray{
console.log(classes);
this.profileForm= this.fb.group({
  optionGroups: this.fb.array([])
})
const control = <FormArray>this.profileForm.controls['optionGroups'];

this.units = JSON.parse(options).optionGroups;
console.log('parsed json: ',this.units);
let index =0;
this.units.forEach(unit => {

  control.push(this.fb.group({
    selectInput: ['', Validators.required],
    whereInput: [[], Validators.required]
  }));
  // this part should've loaded the list for each of the 2nd dropdown but not loading.
  this.wheres[unit.selectInput] = this.getWhere().filter((item)=> item.selectid == unit.selectInput); 

   (<FormArray>this.profileForm.controls['optionGroups']).controls[index]
    .patchValue({ selectInput: unit.selectInput, whereInput: unit.whereInput});
  index++
})
console.log('control: ',control)
return control;

}

1 Ответ

0 голосов
/ 27 мая 2019

все. Это была проблема из моего кода. Фактический список был пуст по какой-то причине. Это было исправлено и успешно загружало выбранные значения для каждого отдельного списка.

...