如何使用自定义模板创建多个ngbPopover实例

时间:2017-02-08 21:46:30

标签: angular ng-bootstrap

我正在尝试使用ng-bootstrap库的ngbPopover组件来创建顶部导航菜单的子菜单选项的弹出窗口。我打算使用该功能为每个菜单选项定制。菜单选项通过* ngFor指令动态生成。我找不到一种方法来为* ngFor的每个元素使用模板。不确定我错过了什么似乎是一个非常简单的要求。这就是我想要做的事情:

    <li class="nav-item" *ngFor="let option of topMenuOptions; let i = index;">
        <a routerLinkActive="active" [routerLink]="[option.permalink, option.id]" class="nav-link" [ngClass]="{'nav-link-hovered': isHovered(option.name)}"
          (mouseover)="onHoverOverLink(option.name, true, i)" (mouseout)="onHoverOverLink(option.name, false, i)" [ngbPopover]="'subMenues' + i"
          placement="bottom" triggers="manual">{{option.name}}</a>
          <template [attr.id]="'subMenues' + i">
            some submenues {{i}}
          </template>
    </li>

看起来似乎无法通过这种语法动态生成模板引用 [ngbPopover] =“'subMenues'+ i”

这是我想要实现的,除了每个popover应该有自己的

enter image description here

1 个答案:

答案 0 :(得分:0)

<li class="nav-item" *ngFor="let option of topMenuOptions; let i = index">
    <template #submenus>
        some submenues {{i}}
    </template>
    <!-- assuming "option.name" is a string -->
    <a href="#" popoverTitle="{{option.name}}" [ngbPopover]="submenus"
      placement="bottom" triggers="mouseenter:mouseleave">menu nr. {{i}}
    </a>
</li>

这对我有用。我希望它有所帮助。