Как преобразовать строковый параметр в атрибут переменной TypeScript Angular - PullRequest
0 голосов
/ 22 мая 2019

У меня есть два метода:

changeStartTime(event, id) {
    if (event.hour >= 10 && event.minute >= 10) {
      this.priceRules[id-1].startTime = event.hour+":"+event.minute;
    }
    else if (event.hour >= 10 && event.minute < 10) {
      this.priceRules[id-1].startTime = event.hour+":0"+event.minute;
    }
    else {
      this.priceRules[id-1].startTime = "0"+event.hour+":0"+event.minute;
    }
  }

  changeEndTime(event, id) {
    if (event.hour >= 10 && event.minute >= 10) {
      this.priceRules[id-1].endTime = event.hour+":"+event.minute;
    }
    else if (event.hour >= 10 && event.minute < 10) {
      this.priceRules[id-1].endTime = event.hour+":0"+event.minute;
    }
    else {
      this.priceRules[id-1].endTime = "0"+event.hour+":0"+event.minute;
    }
  }

Как вы можете видеть, они очень похожи, единственное, что меняется, это startTime и endTime.Это плохая манера разработчика, поэтому мне нужен только один метод с третьим параметром (может быть, строкой?), Но я не знаю, как это сделать.Спасибо

Ответы [ 2 ]

3 голосов
/ 22 мая 2019

Следуйте этому синтаксису:

this.priceRules[id-1]['startTime']

Вместо этого:

this.priceRules[id-1].startTime

т.е.

Здесь вы можете передать 'startTime' и 'endTime' в качестве аргумента функции changeTime

changeTime(event, id, key) {
    if (event.hour >= 10 && event.minute >= 10) {
      this.priceRules[id-1][key] = event.hour+":"+event.minute;
    }
    else if (event.hour >= 10 && event.minute < 10) {
      this.priceRules[id-1][key] = event.hour+":0"+event.minute;
    }
    else {
      this.priceRules[id-1][key] = "0"+event.hour+":0"+event.minute;
    }
  }
2 голосов
/ 22 мая 2019

Я думаю, что это, возможно, решит вашу проблему, но не уверен, потому что я не видел вашу priceRules структуру.

changeTime(event, id, type) {
  if (event.hour >= 10 && event.minute >= 10) {
    this.priceRules[id-1][type] = event.hour+":"+event.minute;
  }
  else if (event.hour >= 10 && event.minute < 10) {
    this.priceRules[id-1][type] = event.hour+":0"+event.minute;
  }
  else {
    this.priceRules[id-1][type] = "0"+event.hour+":0"+event.minute;
  }
}

Где 'type' должно быть 'startTime' или 'endTime' .

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