我有一个问题。当我的组件中的“评级”属性的类型是数字时,我想显示某些 html 元素。否则我希望它显示其他元素。我尝试了以下方法:
<div class="col">
<div [ngSwitch]="rating">
<div *ngSwitchCase="null" ngbDropdown class="d-inline-block">
<button class="btn btn-outline-primary" ngbDropdownToggle>Rate The Movie!</button>
<div ngbDropdownMenu aria-labelledby="dropdownBasic1">
<button value="1" (click)="addRating(1)" class="dropdown-item">1</button>
<button value="2" (click)="addRating(2)" class="dropdown-item">2</button>
<button value="3" (click)="addRating(3)" class="dropdown-item">3</button>
<button value="4" (click)="addRating(4)" class="dropdown-item">4</button>
<button value="5" (click)="addRating(5)" class="dropdown-item">5</button>
</div>
</div>
<div *ngSwitchCase="typeof === number">
<h1>{{rating}}</h1>
</div>
</div>
</div>
不幸的是
*ngSwitchCase="typeof === number"
没用。有人知道怎么做吗?我知道我可以使用 ngIf,但在以后的状态下我想添加更多选项,所以这就是我选择 ngswitch 的原因。
最佳答案
我认为 ngSwitch 不适合您的场景。
为什么不用 ngIf?
<div *ngIf="rating === null" ...>
//...
<div *ngIf="rating !== null && typeof rating === 'number'">
如果你真的想使用 ngSwitch,而你只有 2 个案例(null 或 number),那么使用 ngSwitchDefault 来处理数字案例。但是 ngIf 更干净恕我直言
关于javascript - Ngswitch : show elements when typeof 'rating' is a number,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48491231/