首页 > 解决方案 > 如何将字符串参数转换为变量 TypeScript Angular 的属性

问题描述

我有这两种方法:

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

如您所见,它们非常相似,唯一不同的是startTimeendTime。这是开发人员的一种不好的方式,所以我想要的只是一种带有第三个参数(可能是字符串?)的方法,但我不知道该怎么做。谢谢

标签: angularstringtypescriptparameters

解决方案


遵循以下语法:

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

而不是这个:

this.priceRules[id-1].startTime

IE

在这里,您可以将 '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;
    }
  }

推荐阅读