for 循环中的 ng-content
ng-content in for loop
我正在尝试使用 bootstrap 创建选项卡组件。
<app-tabs>
<app-tab [label]="'label1'">Description 1</app-tab>
<app-tab [label]="'label2'">Description 2</app-tab>
</app-tabs>
我看了这篇文章:
https://juristr.com/blog/2016/02/learning-ng2-creating-tab-component/
但我的用例不同。
我需要在 for 的每个循环中使用不同的 <ng-content>
。
这是我的傻瓜:https://plnkr.co/edit/N2p8Vx?p=preview
它在第二个选项卡中打印两个描述,将第一个留空。
感谢任何帮助!
您可以看看 angular material 是如何实现选项卡控件的。
关于这种方法有一些注意事项https://github.com/angular/angular/issues/18691但无论如何这里是简化版本:
tab.component.ts
@Component({
selector: 'app-tab',
template: `
<ng-template>
<ng-content></ng-content>
</ng-template>`
})
export class TabComponent {
...
@ViewChild(TemplateRef) template: TemplateRef<any>;
}
tabs.component.ts
<div *ngFor="let tab of tabs; let i = index"
class="tab-pane" [ngClass]="{'active': i === 0}"...>
<ng-container *ngTemplateOutlet="tab.template"></ng-container>
</div>
我正在尝试使用 bootstrap 创建选项卡组件。
<app-tabs>
<app-tab [label]="'label1'">Description 1</app-tab>
<app-tab [label]="'label2'">Description 2</app-tab>
</app-tabs>
我看了这篇文章: https://juristr.com/blog/2016/02/learning-ng2-creating-tab-component/ 但我的用例不同。
我需要在 for 的每个循环中使用不同的 <ng-content>
。
这是我的傻瓜:https://plnkr.co/edit/N2p8Vx?p=preview
它在第二个选项卡中打印两个描述,将第一个留空。
感谢任何帮助!
您可以看看 angular material 是如何实现选项卡控件的。
关于这种方法有一些注意事项https://github.com/angular/angular/issues/18691但无论如何这里是简化版本:
tab.component.ts
@Component({
selector: 'app-tab',
template: `
<ng-template>
<ng-content></ng-content>
</ng-template>`
})
export class TabComponent {
...
@ViewChild(TemplateRef) template: TemplateRef<any>;
}
tabs.component.ts
<div *ngFor="let tab of tabs; let i = index"
class="tab-pane" [ngClass]="{'active': i === 0}"...>
<ng-container *ngTemplateOutlet="tab.template"></ng-container>
</div>