我很难使用 *ngif/else语句工作。这是设置:
<div *ngFor="let sub of day">
<p>{{ sub.subject }}</p>
<button type="button" *ngIf="sub.subject; else showElse" routerLink="/day" (click)="viewIndividual(day)" class="btn btn-{{colors[i]}}">View {{ daysBetween[i] | date:'EEEE' }}'s Plan</button>
<ng-template #showElse>
<a type="button" class="btn btn-primary">Add a Lesson</a>
</ng-template>
</div>
问题是我的真实语句正在渲染(带有View {{ daysBetween[i] | date:'EEEE' }}'s Plan
的按钮(,但我的虚假值(ng-template
(不是。我看了几个教程,我以为我做对了,但是我只学习Angular4几天了。请帮助!
您可以使用ngSwitch
,或者,由于只有两种情况,可以直接使用两个ngIf
:
<div *ngFor="let sub of day">
<p>{{ sub.subject }}</p>
<button *ngIf="sub.subject" type="button" routerLink="/day" (click)="viewIndividual(day)" class="btn btn-{{colors[i]}}">View {{ daysBetween[i] | date:'EEEE' }}'s Plan</button>
<a *ngIf="!sub.subject" type="button" class="btn btn-primary">Add a Lesson</a>
</div>
我认为您应该再次检查*NGIF 条件。我在我的代码中尝试过同样的尝试。
TestObj = [
{
category : 'Test'
}, {
category : 'Test1'
}
]
html代码:
<div *ngFor="let key of TestObj">
<p *ngIf="key.subcategory; else newText">** {{key.category}}</p>
<ng-template #newText>No category found</ng-template>
</div>
由于条件,这两次显示No category found
。
注意:如果要简化条件,可以通过在组件中检查主题条件并根据此设置标志来完成。并在中使用该标志*ngif 。