Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/377.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 角度类型脚本从Switch语句在视图中显示变量_Javascript_Angular_Typescript - Fatal编程技术网

Javascript 角度类型脚本从Switch语句在视图中显示变量

Javascript 角度类型脚本从Switch语句在视图中显示变量,javascript,angular,typescript,Javascript,Angular,Typescript,我试图显示JSON响应中可能存在的一些值。如果它们不存在,则应将其设置为0 我的switch语句在我的组件类型脚本中看起来像: this.failures = obj.failures; this.subsystemFailure = new SubsystemFailure(); for(let i=0;i<this.failures.length; i++){ switch(this.failures[i].appName) {

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

我的switch语句在我的组件类型脚本中看起来像:

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将显示为零:

<li>
  <div class="title">A</div>
    <div class="value">
      <strong>{{subsystemFailure.a}}</strong>
    </div>
  <div>
</li>
  • A. {{subsystemFailure.a}}

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

    因此我最终重构了代码:

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

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

    变量“a”在哪里?我只看到变量“a”。@t对不起,这是子系统故障。你能给我看更多吗?从你给我看的情况来看,似乎没有什么不对劲。我能想到的一件事是,
    this.failures.appFailures
    value有
    underfined
    value。因此它将
    欠定义的
    覆盖为默认值
    0
    。我刚刚注意到
    这一点。失败的
    是一个数组。因此,如果没有索引,
    this.failures.appFailures
    可能是错误的。将它们更改为
    this.failures[i].appFailures
    @tin,这样如果failures.appName不存在,它会自动获取值0。这些部件似乎起作用了。例如,json结果显示“a”的值为2,但在控制台中显示为未定义;所有其他对象在视图中显示为0。
      this.subsystemFailure = new SubsystemFailure();
    
      if(this.failureFlag) {
        for (let app of json.failures) {
          this.subsystemFailure[app.appName] = app.appNoOfFailures || 0;
        }
       }