angular - 更改 Angular mat-tab 的顺序

标签 angular angular-material

我正在使用 Angular Material 中的 mat-tabs,我需要根据某些条件动态创建选项卡。

<mat-tab-group #tabsGroup (selectedTabChange)="tabChanged($event)" (selectedIndexChange)="selectedIndexChange($event)" [(selectedIndex)]="selectedIndex">
    <mat-tab id="tab0" label="First tab">
        // Tab content
    </mat-tab>
    <mat-tab id="tab1" label="Second tab">
        // Tab content
    </mat-tab>
    <mat-tab id="tab2" label="Third tab">
        // Tab content
    </mat-tab>
<mat-tab-group>

根据某些条件,我需要能够生成这样的选项卡:

<mat-tab-group #tabsGroup (selectedTabChange)="tabChanged($event)" (selectedIndexChange)="selectedIndexChange($event)" [(selectedIndex)]="selectedIndex">
    <mat-tab id="tab1" label="Second tab">
        // Tab content
    </mat-tab>
    <mat-tab id="tab0" label="First tab">
        // Tab content
    </mat-tab>
    <mat-tab id="tab2" label="Third tab">
        // Tab content
    </mat-tab>
<mat-tab-group>

MatTabs API 上是否有设置或我可以通过 JavaScript 执行一些技巧来实现此目的?谢谢!

最佳答案

您可以使用 ng-template 来实现此目的,如下所示。

<ng-template #content1>
  <div>Content 1</div>
</ng-template>

<ng-template #content2>
  <div>Content 2!</div>
</ng-template>

然后在您的选项卡中相应地使用。

<mat-tab id="tab0" [label]="yourFirstLabel">
    <div *ngIf="yourFlag; then content1 else content2"> </div>
</mat-tab>
<mat-tab id="tab1" [label]="yourSecondLabel">
    <div *ngIf="yourFlag; then content2 else content1"> </div>  
</mat-tab>

请注意,您还需要更新标签(yourFirstLabelyourSecondLabel)

关于angular - 更改 Angular mat-tab 的顺序,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53302061/

相关文章:

angular - Ionic 2 - 如何处理后退按钮

angular - 如何在没有 moment.js 依赖的情况下格式化 Angular Material datepicker

Angular Material 多对象拖放与调整大小问题

angular - 确认 Angular 6 中的密码验证

angular - RXJS 在新值可用时取消订阅

angular - 根据时区更改 mat-datepicker 选择的日期值

angular - Ngx-datatable 行详细信息

angular - 尝试从 4chan API 获取

angular - 在 Angular 5 中预设和重置 mat-datepicker

css - md-sidenav 动画不在 IE 中禁用?