我正在使用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”
使用哪一个?
答案 0 :(得分:1)
ngSwitchWhen="2"
此表达式检查switchcase对变量myVar的值(myVar ==&#34; 6&#34;)
ngSwitchWhen="myVar==3"
虽然此表达式的计算结果为myVar ==(myVar == 2),但如果myVar为2,则parantheses内的值将返回1,如果不是,则返回0