Привязать модель к MaterialSelectComponent и бесполезным DelegatingSelectionModel <T>.selectedValues - PullRequest
0 голосов
/ 07 октября 2018

Скажем, у меня есть List<Language>, который я хочу привязать к MaterialSelectComponent.

Я хочу получить в реальном времени выбранное и удаленное значение , а также проверенное значениекогда модель привязывается при «старте» .

1-я попытка

В компоненте

final SelectionModel<Language> languagesSelection = SelectionModel.multi();

В шаблоне

<material-select #languages [options]="languages" (click)="languagesSelection.selectionChanges.listen(update);"
  displayNameRenderer [selection]="languagesSelection">
</material-select>

Iполучить слишком зашумленную информацию с помощью DelegatingSelectionModel<T>.selectionChanges.listen(update);

Очевидно, SelectionChangeRecord<T> class не подходящий класс для использования…

2-я попытка

В компоненте

final SelectionModel<Language> languagesSelection = SelectionModel.multi();

В шаблоне

<material-select #languages (click)="update(languagesSelection.selectedValues);" [selection]="languagesSelection">
  <material-select-item *ngFor="let lang of languages" [value]="lang" [selected]="lang.selected"
    displayNameRenderer>
  </material-select-item>
</material-select>

Но метод обновления в Компоненте получает бесполезные вещи ...

  • * * * * * * * * * languagesSelection.selectedValues запускается при нажатии метки, поэтому извлеченные данныеповрежден, поскольку флажок, кажется, не установлен, но действительно установлен…
  • , в то время как документация гласит

    Возвращает упорядоченный список выбранных значений.

    languagesSelection.selectedValues не возвращает выбранные значения, установленные при запуске, при использовании [selected]="lang.selected"

  • список ненадежен, инельзя использовать для связывания с моделью…

Вопрос

Как правильно связать MaterialSelectComponent с моделью?

...