如何检测 ngSwitch
和 ngSwitchWhen
中的 undefined?
下面这三种方法我都试过了,都不行。它始终显示 Not undefined。
谢谢
<div [ngSwitch]="value">
<p *ngSwitchWhen="undefined">11</p>
<p *ngSwitchWhen="'undefined'">22</p>
<p *ngSwitchWhen="">33</p>
<p *ngSwitchDefault>Not undefined</p>
</div>
value: string;
更新:
@basarat指出了为什么会这样,详情请关注:
https://github.com/angular/angular/issues/7637#issuecomment-197619354
最佳答案
问题是 ngSwitchWhen
使用 angular 的 ===
检查是坏的,如下例所示:
import {
bootstrap,
Component,
View,
NgSwitch,
NgSwitchWhen,
NgSwitchDefault
} from 'angular2/angular2';
@Component({
selector: 'app',
})
@View({
template: `
<p>Value = {{value === undefined}}</p>
<p>Value = {{value == undefined}}</p>
<div [ng-switch]="value">
<p *ng-switch-when="undefined">UNDEFINED</p>
<p *ng-switch-default>DEF</p>
</div>
`,
directives: [NgSwitch, NgSwitchWhen, NgSwitchDefault]
})
export class App {
value = undefined;
}
bootstrap(App)
.catch(err => console.error(err));
=== undefined
结果为假,但 == undefined
结果为真。
这里是 plunkr:http://plnkr.co/edit/DQMTII95CbuqWrl3lYAs?p=preview
更多
关于typescript - 如何检测 ngSwitch 和 ngSwitchWhen 中的未定义? ( Angular 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36044443/