在NgbTooltip内容中包括超链接(具有_blank目标)属性

时间:2018-08-09 02:25:41

标签: javascript angular ng-bootstrap

我对NgbTooltip有要求

  • 工具提示应允许包含带有“ _blank”目标的超链接。例如:了解更多
  • 单击文档正文时,工具提示应该隐藏。

下面是我的方法,并且无法按预期工作。

<a [ngbTooltip]="hintTooltip" tabindex="0"  triggers="click:blur">hint</a>
<ng-template #hintTooltip>
  Sample hint description
  <a href="www.abc.com" target="_blank">Learn more</a>
</ng-template>

上面的代码通过显示超链接来打开工具提示。但是当我单击超链接时,它没有显示新窗口,而是隐藏了工具提示。

stackblitz:https://stackblitz.com/edit/angular-viipeo-dqjmfh?file=app/tooltip-triggers.html

感谢任何人都可以提供帮助

2 个答案:

答案 0 :(得分:1)

固定的,如果有人感兴趣,下面是解决方法

.html

<a [ngbTooltip]="hintTooltip" tabindex="0"  triggers="click:blur">hint</a>
    <ng-template #hintTooltip>
      Sample hint description
      <a href="www.abc.com" target="_blank" (click)="nToolTip(t1, 'http://www.google.com');">Learn more</a>
    </ng-template>

.ts

_toolTipCollection = [];
nToolTip(tooltip, _url?: string): void {
    if (tooltip.isOpen()) {
        if (_url) {
            window.open(_url, '_blank');
        }
    }
    for (const tooltip of this._toolTipCollection) {
        tooltip.close();
    }
    this._toolTipCollection = [];

    tooltip.toggle();
    this._toolTipCollection.push(tooltip);
}

答案 1 :(得分:0)

使用ViewChild获取对Element的引用,然后使用工具提示方法关闭

 @ViewChild('ref') ref;
  @HostListener('mouseleave',['$event']) onHoverOutside(){
   this.ref.close();
  }

示例:https:https://stackblitz.com/edit/angular-viipeo