ngSwitchWhen写入重复的时候不起作用

时间:2017-08-18 09:37:50

标签: angular2-template angular2-directives

我正在使用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”

使用哪一个?

1 个答案:

答案 0 :(得分:1)

ngSwitchWhen="2"

此表达式检查switchcase对变量myVar的值(myVar ==&#34; 6&#34;)

ngSwitchWhen="myVar==3"

虽然此表达式的计算结果为myVar ==(myVar == 2),但如果myVar为2,则parantheses内的值将返回1,如果不是,则返回0