如何将数据传递给ng-bootstrap popover

时间:2018-03-07 10:31:10

标签: angular twitter-bootstrap-4 ng-bootstrap

我正在使用ng-bootstrap编写一个带Bootstrap的Angular应用程序。我有一个封装在这样的组件中的popover:

HTML(popover组件)

<div>
  <div>Data 1: <i>{{ v.data1 }}</i></div>
  <div>Data 2: <i>{{ v.data2 }}</i></div>
</div>

此弹出窗口在另一个组件中打开:

HTML

<div *ngFor="let v of vector">
    <span [ngbPopover]="popOver" popoverTitle="Pop title">Open</span>
</div>

<ng-template #popOver>
    <popover></popover>
</ng-template>

我需要将ngFor的v参数传递给popover。我怎样才能做到这一点?

1 个答案:

答案 0 :(得分:4)

这是角度how to pass data to component的基本技术。

所以你需要更新你的popover组件:

popover.component.html

<div>
  <div>Data 1: <i>{{ data.data1 }}</i></div>
  <div>Data 2: <i>{{ data.data2 }}</i></div>
</div>

popover.component.ts

@Component({
  selector: 'popover',
  templateUrl: './popover.component.html'
})
export class PopoverComponent {
  @Input() data: any;
}

然后更新你的ngFor:

<div *ngFor="let v of vector">
  <span [ngbPopover]="popOver" popoverTitle="Pop title">Open</span>
  <ng-template #popOver>
    <popover [data]="v"></popover>
  </ng-template>
</div>

以下是https://stackblitz.com/edit/angular-laqjog

的示例