Angular Typescript Отображение переменных в представлении из оператора Switch - PullRequest
0 голосов
/ 03 мая 2018

Я пытаюсь отобразить некоторые значения, которые могут существовать в ответе 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;
                } 

            }

Мой файл класса ts выглядит так:

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;
  }
}

И я пытаюсь отобразить данные в виде, где, если нет значения, если будет отображаться как ноль:

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

В настоящее время переменная subystemFailure.a (это первая) возвращается как неопределенная. Кто-нибудь может указать мне правильное направление?

1 Ответ

0 голосов
/ 04 мая 2018

Так что я в итоге рефакторинг кода так:

  this.subsystemFailure = new SubsystemFailure();

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

Вместо оператора switch выполняется перебор ответа и присваивается значение, связанное с appName, или значение 0, если в ответе нет appName.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...