Ясность vmware: определите различное поведение clrCloseMenuOnItemClick для выпадающего элемента - PullRequest
0 голосов
/ 12 сентября 2018

У меня есть стандартное раскрывающееся меню Clarity, и мне нужно определить поведение «закрыть меню при нажатии на элемент» для каждого элемента: поэтому щелчок по первому элементу раскрывающегося меню должен закрыть меню, а щелчок по второму элементу не должен , Это возможно? Я уверен, что это не намеренное поведение команды Clarity, но в моем очень редком случае использования это имеет смысл.

Я использую Angular 6 и Clarity 0.13.0

1 Ответ

0 голосов
/ 12 сентября 2018

Вы можете легко выполнить это пользовательское поведение, используя двустороннюю привязку на [(clrIfOpen)], чтобы принудительно закрыть раскрывающийся список в тех немногих случаях, когда вы этого хотите. Вот бегущий пример: https://stackblitz.com/edit/dropdown-close-on-some-clicks?file=src/app/app.component.html

Обратите внимание, что мне пришлось использовать синтаксис без сахара с <ng-template>, чтобы иметь возможность использовать двустороннее связывание со структурной директивой:

<clr-dropdown [clrCloseMenuOnItemClick]="false">
  <button clrDropdownTrigger>...</button>
  <ng-template [(clrIfOpen)]="open">
    <clr-dropdown-menu>
      <button type="button" clrDropdownItem>Does not close</button>
      <button type="button" clrDropdownItem (click)="close()">Closes the dropdown</button>
      <button type="button" clrDropdownItem>Does not close either</button>
    </clr-dropdown-menu>
  </ng-template>
</clr-dropdown>
...