Angular Material 7 Multi Select - Установить выбранное значение

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

// цикл, чтобы сделать несколько флажков выбранными и установленными в зависимости от условия

document.getElementsByTagName('mat-pseudo-checkbox')[index].classList.add('mat-pseudo-checkbox-checked');
document.getElementsByTagName('mat-pseudo-checkbox')[index].setAttribute("ng-reflect-state","checked");

это отражает изменение только косметически, поскольку, когда я пытаюсь получить все выбранные флажки с помощью (selectionChange)=filter($event)

<mat-select multiple  (selectionChange) = "filter($event)" formControlName = "dropdown">
   <mat-option *ngFor = "let info of infos" [value] = "info">
      {{info}}
    </mat-option>
 </mat-select>

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

PS: цель состоит в том, чтобы сохранить несколько полей выбора при переключении между угловыми вкладками

ваш образец не в контексте angular-material2.

amir azizkhani 21.07.2019 07:23
Тестирование функциональных ngrx-эффектов в Angular 16 с помощью Jest
В системе управления состояниями ngrx, совместимой с Angular 16, появились функциональные эффекты. Это здорово и делает код определенно легче для...
Angular и React для вашего проекта веб-разработки?
Angular и React для вашего проекта веб-разработки?
Когда дело доходит до веб-разработки, выбор правильного front-end фреймворка имеет решающее значение. Angular и React - два самых популярных...
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Эпизод 23/17: Twitter Space о будущем Angular, Tiny Conf
Мы провели Twitter Space, обсудив несколько проблем, связанных с последними дополнениями в Angular. Также прошла Angular Tiny Conf с 25 докладами.
Угловой продивер
Угловой продивер
Оригинал этой статьи на турецком языке. ChatGPT используется только для перевода на английский язык.
Мое недавнее углубление в Angular
Мое недавнее углубление в Angular
Недавно я провел некоторое время, изучая фреймворк Angular, и я хотел поделиться своим опытом со всеми вами. Как человек, который любит глубоко...
Освоение Observables и Subjects в Rxjs:
Освоение Observables и Subjects в Rxjs:
Давайте начнем с основ и постепенно перейдем к более продвинутым концепциям в RxJS в Angular
4
1
20 433
3
Перейти к ответу Данный вопрос помечен как решенный

Ответы 3

Here is working good link example

Ответ принят как подходящий

Вы можете установить выбранные значения с помощью функции FormControl.setValue()

пример.component.html

<mat-select [formControl] = "toppings" (selectionChange) = "filter($event)" multiple [(value)] = "selected" >
    <mat-option *ngFor = "let topping of toppingList" [value] = "topping">{{topping}}</mat-option>
</mat-select>

пример.component.ts

  toppings = new FormControl();
  toppingList: string[] = ['Extra cheese', 'Mushroom', 'Onion', 'Pepperoni', 'Sausage', 'Tomato'];

  ngOnInit(){
    this.toppings.setValue(['Mushroom', 'Onion']);
  }


  filter(data){
    console.info(data.value);
  }

Пожалуйста, проверьте пример

см. этот пример стекблиц.

вы можете установить и получить значение с атрибутом formControl.

Другие вопросы по теме