ngSwitchWhen 在写入重复时间时不起作用

ngSwitchWhen doesn't work when duplicate whens are written

我正在使用 ng-book2 书学习 angular2,我只是在玩内置指令。 我正在阅读有关 ngSwitch 的文章,我偶然发现了这个功能,我们可以在其中编写多个 ngSwitchWhen 具有相同条件的代码,例如以下代码:

   <ul [ngSwitch]="choice">
    <li *ngSwitchWhen="1">First choice</li>
    <li *ngSwitchWhen="2">Second choice</li>
    <li *ngSwitchWhen="3">Third choice</li>
    <li *ngSwitchWhen="4">Fourth choice</li>
    <li *ngSwitchWhen="2">Second choice, again</li>
    <li *ngSwitchDefault>Default choice</li> 
    </ul>

将输出以下结果:

第二选择

第二选择,再次

我写的代码如下:

  <div [ngSwitch]="myVar">
        <div *ngSwitchWhen="myVar==1">My Var is 1</div>
        <div *ngSwitchWhen="myVar==2">My Var is 2</div>
        <div *ngSwitchWhen="myVar==3">My Var is 3</div>
        <div *ngSwitchWhen="myVar==3">Special feature of ng Swtich</div>
        <div *ngSwitchDefault>My Var is {{myVar}}</div>
    </div>

不打印具有相同条件的输出。 我认为我的代码是正确的,但是当我看到 *ngSwitchWhen="myVar==3" 我发现了我的错误。

但奇怪的是,除了重复条件外,它都能正常工作

这两个条件有什么区别吗?

*ngSwitchWhen="2"

*ngSwitchWhen="myVar==3"

使用哪一个?

ngSwitchWhen="2"

此表达式根据变量 myVar(myVar=="6")

检查 switchcase 的值
ngSwitchWhen="myVar==3"

而此表达式的计算结果为 myVar==(myVar==2) 括号内的值 return 如果 myVar 为 2 则为 1,否则为 0