Открыть множественный выбор с помощью другой кнопки (primeng, angular) - PullRequest
1 голос
/ 28 января 2020

Есть ли способ открыть primeng multiselect с помощью другой кнопки?

Я пробовал запуск, нажимая на nativeElement, но это не сработало.

Ниже мой компонент:

<div>
  <button class="btn btn-primary" #filterButton (click)="openMultiselect()">Trigger remotely</button>
</div>

<div class="ui-g">
  <div class="ui-g-6 ui-fluid">
    <p-multiSelect [options]="cities1" [(ngModel)]="selectedCities1"></p-multiSelect>
  </div>
</div>

И TS:

@ViewChild(MultiSelect) filterButton: MultiSelect;

  openMultiselect() {
    this.filterButton.el.nativeElement.click()
  }

И стекаблитц: https://stackblitz.com/edit/ngprime-multiselect-azdsh4

1 Ответ

2 голосов
/ 28 января 2020

Для этого необходимо выполнить два шага:

  • call publi c MultiSelect::show метод

  • остановить распространение события для предотвращения закрытия диалога во время того же действия

html

<button (click)="openMultiselect($event)" ...

ts

@ViewChild(MultiSelect) multiSelect: MultiSelect;

openMultiselect(e) {
  this.multiSelect.show();
  e.stopPropagation();
}

Разветвленный стек-блиц

...