【问题标题】:Angular Material programmatically change Tab labelsAngular Material 以编程方式更改选项卡标签
【发布时间】:2017-12-05 06:09:51
【问题描述】:

我正在使用 Angular 5.0.0 和 Material 5.0.0-rc.1。我有一个标签组,我希望最后一个标签始终有一个额外的图标按钮作为标签的一部分。

这是标签组的现有代码:

<mat-tab-group #revTabGroup class="tab-group" [(selectedIndex)]="selectedTab">
    <mat-tab *ngFor="let rev of proposal.revisions" label="{{rev.revisionID}}">
        <proposal-revision [proposalRevision]="rev"></proposal-revision>
    </mat-tab>
</mat-tab-group>

我希望 &lt;button mat-icon-button matTooltip="Delete This Item"&gt;&lt;mat-icon&gt;delete_forever&lt;/mat-icon&gt;&lt;/button&gt; 仅显示在最后一个选项卡上的修订 ID 旁边。选项卡的数量会发生变化,因此需要调用一个函数或其他东西来更新更改后哪个选项卡具有按钮。

首先,是否可以在标签标签上显示一个按钮,或者你可以只添加文本?​​

其次,有没有办法以编程方式设置标签,可能类似于this.revTabGroup.???.textLabel = "&lt;button&gt; ... &lt;/button&gt;"

我什至认为也许这可以使用 css 来完成,例如:

.mat-tab-labels:last-child {
    ...
}

但是,我什么也做不了。任何人有任何想法或知道这是否可能?

【问题讨论】:

    标签: angular angular-material2


    【解决方案1】:

    您可以在 ngFor 循环中使用 Angular 的 last 键:

    <mat-tab-group #revTabGroup class="tab-group" [(selectedIndex)]="selectedTab">
        <mat-tab *ngFor="let rev of proposal.revisions; let last = last;" [label]="rev.revisionID">
              <ng-template md-tab-label>
                {{rev.revisionID}}
                <button *ngIf="last" mat-icon-button matTooltip="Delete This Item"><mat-icon>delete_forever</mat-icon></button>
              </ng-template>
            <proposal-revision [proposalRevision]="rev"></proposal-revision>
    
        </mat-tab>
    </mat-tab-group>
    

    【讨论】:

    • 这是为最后一个标签content添加按钮的绝佳解决方案,但它对标签labels没有任何作用。跨度>
    • @tim 更新了添加按钮标签的答案
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-12-08
    • 1970-01-01
    • 2019-07-29
    • 2018-12-20
    • 2011-06-12
    • 2015-06-01
    • 1970-01-01
    相关资源
    最近更新 更多