Как произвести оценку строки, чтобы изменить переменную компонента в Angular / Typescript? - PullRequest
1 голос
/ 20 июня 2020

У меня есть компонент с локальными переменными в нем, например:

trainingColumns = 1;
trainingAttempts = 2;

и так далее

Затем обработчик HTTP-ответа, который я хотел бы выполнить с помощью бизнес-правило, исходящее от остальной серверной части. Я хотел бы сделать его как agile, насколько это возможно, а не жестко запрограммировать, поэтому я не хочу анализировать эту строку для значений, но вместо этого я хотел бы, чтобы она была оценена и изменила значения локальной переменной компонента, вот так:

   this.trainingColumns = 2;

Я попытался просто поместить указанную выше строку в

(window as any).eval("this.trainingColumns = 2;");

и не смог, переменные компонента не изменились. Итак, каков правильный способ Angular / Typescript для этого? Не то чтобы в какой-то момент мне может потребоваться, скажем,

   (window as any).eval("this.trainingColumns = 2; this.trainingAttempts = 1;");

или даже что-то более сложное.

1 Ответ

1 голос
/ 20 июня 2020

Хотя использование eval может быть опасным, это должно помочь вам начать ...

name: string = "";

ngOnInit() {
  var obj = this as object;
  eval("obj.name = 'hello world'")
  console.log(this.name) // hello world
}
...