Angular Typescript在Switch语句中显示视图中的变量

时间:2018-05-03 19:53:57

标签: javascript angular typescript

我正在尝试显示JSON响应中可能存在的一些值。如果它们不存在,则应将它们设置为0.

我的switch语句看起来像我的组件打字稿里面看起来像:

<View>
  <MyInput onPress={() => this.setState({showField: !this.state.showField})} />
  {this.state.showField && <OtherField />}
</View>

我的课程ts文件如下:

this.failures = obj.failures;
this.subsystemFailure = new SubsystemFailure();

        for(let i=0;i<this.failures.length; i++){
              switch(this.failures[i].appName) {
                case "a": 
                  this.subsystemFailure.a = this.failures.appFailures;
                  break;
                case  "b": 
                  this.subsystemFailure.b = this.failures.appFailures;
                  break;
                case  "c": 
                  this.subsystemFailure.c = this.failures.appFailures;
                  break;
                case  "d": 
                  this.subsystemFailure.d = this.failures.appFailures;
                  break;
                case "e": 
                this.subsystemFailure.e = this.failures.appFailures;
                  break;
                case "f": 
                  this.subsystemFailure.f = this.failures.appFailures;
                  break;              
                case "g": 
                  this.subsystemFailure.g = this.failures.appFailures;
                  break;
                case "h": 
                  this.subsystemFailure.h = this.failures.appFailures;
                  break;
                } 

            }

我正在尝试在视图中显示数据,如果没有值,if将显示为零:

export class SubsystemFailure {
  a: number;
  b: number;
  c: number;
  d: number;
  e: number;
  f: number;
  g: number;
  h: number;

  constructor(){
    this.a = 0;
    this.b = 0;
    this.c = 0;
    this.d = 0;
    this.e = 0;
    this.f = 0;
    this.g = 0;
    this.h = 0;
  }
}

目前,subsystemFailure.a(它是第一个)变量将以未定义的形式返回。有人能指出我正确的方向吗?

1 个答案:

答案 0 :(得分:0)

所以我最终重构了代码:

  this.subsystemFailure = new SubsystemFailure();

  if(this.failureFlag) {
    for (let app of json.failures) {
      this.subsystemFailure[app.appName] = app.appNoOfFailures || 0;
    }
   }

这不是switch语句,而是迭代响应并指定与appName关联的值,如果响应中没有appName,则指定值0。