0

我有一个标准的 Clarity 下拉菜单,我需要为每个项目定义“单击项目时关闭菜单”行为:因此,单击第一个下拉菜单项应该关闭菜单,单击第二个项目不应该。这可能吗?我确信这不是 Clarity 团队的预期行为,但在我非常罕见的用例中它是有道理的。

我使用 Angular 6 和 Clarity 0.13.0

4

1 回答 1

3

您可以通过使用双向绑定来轻松地执行此自定义行为[(clrIfOpen)],以强制下拉在您想要的少数情况下关闭。这是一个正在运行的示例:https ://stackblitz.com/edit/dropdown-close-on-some-clicks?file=src/app/app.component.html

请注意,我必须使用脱糖语法 with<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>
于 2018-09-12T16:47:08.753 回答