我正在使用 ng-bootstrap 编写带有 Bootstrap 的 Angular 应用程序。我有一个封装在这样的组件中的弹出窗口:
HTML(弹出组件)
<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 参数传递给弹出窗口。我怎样才能做到这一点?
最佳答案
这是 Angular 的基本技术 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
https://stackoverflow.com/questions/49149662/