Угловой - Как установить выбранные значения для выбора матрицы из источника данных таблицы динамического размера - PullRequest
0 голосов
/ 05 апреля 2019

Я настраиваю таблицу соответствия, которая показывает некоторые значения из источника данных и имеет выбор выбора с множественным выбором в каждой строке.Источником данных для таблицы является массив объектов («CarManufacturer»), который содержит другой массив объектов («Бренд»).В списке выбора я показываю полный список всех «брендов».

В данный момент я не могу отменить / выбрать эти «бренды».Они помечены как выбранные или нет.Я не могу изменить это.

Я создал функцию, которая возвращает массив чисел (идентификаторов брендов), который передает [значение] mat-select.Это обозначает марки в выпадающем списке, которые есть в массиве CarManufactors, но я не могу ничего выбрать в выпадающем списке.

Код: https://stackblitz.com/edit/angular-skrrhb

Я ожидаю, что я могу изменить значенияпадать.В данный момент я не могу удалить / выбрать значения.

1 Ответ

1 голос
/ 05 апреля 2019

Проблема в том, что <mat-select [value]="getArray(element.brands)" multiple> всегда возвращает одно и то же значение независимо от того, что.

Одним из решений будет добавление бренда, выбранного в интерфейсе бренда, и сохранение значений там:

export interface CarManufacturer {
  id: number;
  name: string;
  brands: Brand[];
  brandsSelected?: number[]; 
}

А затем примените двустороннюю привязку данных в mat-select следующим образом:

   <mat-select [(value)]="element.brandSelected" multiple>

Рабочий пример можно посмотреть здесь:

https://stackblitz.com/edit/angular-ujirgb?file=src%2Fapp%2Fapp.component.html

...