Как предотвратить `MatListOption` для проверки / снятия флажка? - PullRequest
0 голосов
/ 19 сентября 2019

Настройка:

Угловой материал 8.1.4.

Использование:

MatSelectionList и MatListOption

Проблема:

Мне нужно показать несколько ранее выбранных элементов, которые пользователь не сможет проверить / снять, поэтому они будут вести себя какесли бы они были readonly.

Проблема возникает из-за того, что MatListOption не имеет поддержки атрибута readonly, что эффективно могло бы решить мою проблему.

Настройка (click)="$event.stopPropagation()" также не мешает нажимать на нее.

Есть идеи?

Спасибо!

pd.Для справки, я только что создал выпуск подвигов в https://github.com/angular/components/issues/17141

ppd.Я проверил, используя disabled, но это не позволило добавить элементы в окончательный список, что не соответствует предполагаемому поведению.

1 Ответ

0 голосов
/ 19 сентября 2019

Решил проблему, добавив дополнительное (selectionChange)="selectedChanged($event)" событие, определенное как:

selectedChanged($event: MatSelectionListChange) {
    if ($event.option.value.isChecked) {
      $event.option.selected = true;
    }
  }

isChecked, вот бизнес-фильтр, который я использую для различения выбранных опций, выдав $event.option.selected = true;предмет остается выбранным, что и было намеченным поведением.

...