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