Почему функция eval () приводит к неопределенному свойству? - PullRequest
0 голосов
/ 28 декабря 2018

Я пытаюсь получить значение свойства в массиве объекта, массив которого является свойством объекта -> this.form.data.output [0] .output_total.Имя массива, индекс и имя свойства передаются в качестве параметра и присваиваются переменной.

Я попытался использовать eval() и попытался войти в консоль, но это привело к Cannot read property data of undefined

Вот как я вызываю функцию: (keyup)="form.onNumberChanges($event, 'output', 0, 'output_total')"

Вот код:

onNumberChanges: (event, params, index = null, properties = null) => {
  if (index !== null) {
    console.log(`this.form.data.${params}[${index}].${properties}`);
    /* I am checking if the string isn't proper, but its result as same as I expected --> this.data.output[0].output_total */

    console.log(eval(`this.form.data.${params}[${index}].${properties}`));
    /* resulting cannot read property data of undefined */
  }

Я ожидаю, что получу значение в этом (0/2 /3 / или любой другой номер).Есть ли какая-нибудь подсказка?

Ответы [ 2 ]

0 голосов
/ 28 декабря 2018

В каком браузере вы тестируете?

Убедитесь, что IE не поддерживает ES6 некоторые методы, такие как this.form.data.${params}[${index}].${properties}

0 голосов
/ 28 декабря 2018

Попробуйте изменить функцию ниже, так как она выглядит как связанная с контекстом (эта) проблема, поскольку форма не определена

onNumberChanges(event, params, index = null, properties = null) {

, а также конвертируйте в

console.log(this.form.data[params][index][properties])
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...