Angular - 删除mat-tab中的标签

问题描述 投票:0回答:1

我有一个由两个标签组成的表单。 基于* ngIf,我决定要显示哪种标签。 - 如果我的表单是一个视图,我想看到两个带有标签的选项卡(两个选项卡都有显示用户的信息,第二个选项卡是结果)。 - 如果我的表单是添加,我希望看不到标签,因此没有标签。

我不想创建两个单独的文件,因为我试图尽可能地减少我的代码。

我尝试添加替换mat-tab-label的ng-template,但不是删除它,我的标签是空的。

Example of an empty label

到目前为止,这就是我所拥有的。我的问题是:是否可以在不创建新文件的情况下删除整个标签标签,如果是,我该怎么办?

<mat-dialog-content class="ManageTask">
<form [formGroup]="form">
    <mat-tab-group mat-stretch-tabs>
        <mat-tab>
            <ng-template *ngIf="isView()" mat-tab-label>Task details</ng-template>
            <div class="left">
                <mat-form-field class="full-width">
                    <input matInput type="text" placeholder="Name" formControlName="name">
                    <mat-error *ngIf="form.controls['name'].hasError('required')">Name required</mat-error>
                </mat-form-field>
                <br/>
                <mat-form-field class="full-width">
                    <textarea matInput type="text" placeholder="Description" formControlName="description"></textarea>
                    <mat-error *ngIf="form.controls['description'].hasError('required')">Description required</mat-error>
                </mat-form-field>
            </div>
        </mat-tab>
        <mat-tab *ngIf="isView()" label="Task results">
            <div>...MORE CONTENT...</div>
        </mat-tab>
    </mat-tab-group>
</form>

html angular
1个回答
0
投票

我不确定我是否理解这个问题。当然你可以这样做。正确使用<ng-template>andngIf的方法是这样的:

<ng-template [ngIf]="isView()">
    <mat-tab label="Task details">...</mat-tab>
</ng-template>

要么 :

<mat-tab *ngIf="isView()" label="Task details">...</mat-tab>

[ngif]*ngif之间的差异:Angular Structural Directives

希望它有所帮助

© www.soinside.com 2019 - 2024. All rights reserved.