javascript - Ngswitch : show elements when typeof 'rating' is a number

标签 javascript angular

我有一个问题。当我的组件中的“评级”属性的类型是数字时,我想显示某些 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/

相关文章:

javascript - jquery如何获取文件扩展名

angular - 加载 angular2-datatable 时找不到 404

angular - Set 仅指一种类型,但它被用作值 - WebStorm

javascript - 如何使用 Phantomjs 设置页面抓取之间的时间间隔

Angular 2 : how to resolve Error: (SystemJS) module is not defined?

javascript - 从响应中获取数组而不是对象

angular - 是否可以跨多个项目共享 Angular 组件?

javascript - 组件 react 中的传播运算符

javascript - 悬停时播放音频文件(并在鼠标移开时停止播放)

javascript - 将范围为 {n} (length prop) 的数组中的值分组到下一项