kotcich
@kotcich
Я скучный.

Как в template указать название переменной из data в цикле?

<div v-for="(elem, key) in data" :="key">{{ elem }}</div

export default {
  data() {
    return {
      a: 1,
      b: "some",
      c: [1, 2, 3],
      data: ['a', 'b', 'c']
    }
  }
}

data в цикле - это массив такого вида ['a', 'b', 'c'].
И хочу чтобы выводилось значение моей переменной, а не строка a b или c.
  • Вопрос задан
  • 61 просмотр
Решения вопроса 1
wapster92
@wapster92
<div
      v-for="(elem, key) in data"
      :key="key"
    >
      {{ $data[elem] }}
    </div>
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 1
@dGololobov
начинающий
На вскидку вижу два варианта:

1. свои переменные a, b, c заверните в объект:
export default {
  data() {
    return {
      myVars: {
           a: 1,
           b: "some",
           c: [1, 2, 3],
      },
      data: ['a', 'b', 'c'],
    }
  }
}

<div v-for="(elem, key) in data" :="key">{{ myVars[elem] }}</div>


2. Сделайте метод для получения значений переменных по их названию:
export default {
  data() {
    return {
      a: 1,
      b: "some",
      c: [1, 2, 3],
      data: ['a', 'b', 'c'],
    }
  },
  methods: {
     getDataValue(param) {
            return this[param] || null;
      },
   },
}

<div v-for="(elem, key) in data" :="key">{{ getDataValue(elem) }}</div>
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы