ng-select: не открывать раскрывающийся список при щелчке метки пользовательского шаблона - PullRequest
0 голосов
/ 02 марта 2019

Мне нужно выполнить действие, если пользователь нажимает на мою пользовательскую метку на множественном выборе ng-select в Angular 6. Я попробовал следующее:

Шаблон:

<ng-select [multiple]="true"] (...)>

  <ng-template ng-label-tmp let-item="item" let-clear="clear">
      <span class="ng-value-label" (click)="onLabelClick(item, $event)">{{item.name}}</span>
      <span class="ng-value-icon right" (click)="clear(item)" aria-hidden="true">×</span>
  </ng-template>

</ng-select>

Компонентfunction:

onLabelClick(item, $event) {

  $event.stopPropagation();
  $event.preventDefault();

  // Do my stuff
  (...)
}

Функция активирована, но она всегда открывает раскрывающийся список ng-select и устанавливает фокус в выпадающем списке ng-select.Я хочу, чтобы раскрывающийся список оставался закрытым, когда пользователь нажимает одну из меток.И фокус не должен быть в выпадающем списке, потому что на мобильном устройстве это откроет клавиатуру.

У кого-нибудь есть идея?

1 Ответ

0 голосов
/ 10 марта 2019

Разработчики ng-select мне помогли: он отлично работает для использования mousedown:

<ng-template ng-label-tmp let-item="item" >
  <span (mousedown)="$event.stopPropagation()">{{ item }}</span> 
</ng-template>

https://github.com/ng-select/ng-select/issues/1092

...