3

我正在尝试使用引导程序创建一个选项卡组件。

<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/ 但我的用例不同。

我需要<ng-content>在for的每个循环中使用不同的。这是我的 plunker:https ://plnkr.co/edit/N2p8Vx?p=preview 它在第二个选项卡中打印两个描述,将第一个留空。

感谢任何帮助!

4

1 回答 1

12

您可以查看角度材料如何实现选项卡控制。

这种方法有一些注意事项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>

Plunker 示例

于 2017-11-27T06:39:58.110 回答