typescript - 如何检测 ngSwitch 和 ngSwitchWhen 中的未定义? ( Angular 2)

标签 typescript angular

如何检测 ngSwitchngSwitchWhen 中的 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

更多

建议您在这里举报:https://github.com/angular/angular/issues

关于typescript - 如何检测 ngSwitch 和 ngSwitchWhen 中的未定义? ( Angular 2),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36044443/

相关文章:

angular - 使用 Angular 4 检查网络中的互联网连接

node.js - 用户登录后处理 MEAN 堆栈应用程序中的社交媒体集成

typescript - 从 Typescript 到 Javascript => required 未在 chrome 浏览器中定义

angular - 覆盖 ionic 4中的工具栏后退按钮操作

typescript - 值未以 Angular 2 发布在 onSubmit 上

javascript - Angular2 - 没有 ExceptionHandler 的提供者

typescript - 如何使用 webpack 在 angular2 应用程序中使用 lodash 解决错误 "Cannot find name ' _' "

angular - 具有自定义 HTTP 和 ConfigService 循环依赖的 DI

java - Observable <boolean> 不返回 java 值

angular - 如何在 Angular 4 的 Material Design 表格中添加复选框