Madeas
@Madeas
UI / UX Designer, Frontend Developer

Как правильно прописать в шаблоне директивы v-if?

Как правильно прописать в шаблоне директивы v-if, при условии, что структура данных может быть как строкой, так и массивом? т.е. в Data { return { ... может быть так "code": "one", или так "code": ["one", "two"],

В шаблоне прописываю так:
template: `
<template v-for="(value, index) in cd.code" :key="index">
    <small class="tag">{{ value }}</small>
</template>
`

работает нормально, но только для массива. Если код выглядит так "code": "one",, то "one" разбивается на 3 тега small
  • Вопрос задан
  • 62 просмотра
Решения вопроса 1
Если не массив, преобразовывать в массив:
v-for="(value, index) in (Array.isArray(cd.code) ? cd.code : [cd.code])"


или сделать вычисляемое свойство:
computed: {
  codeArray() {
    return Array.isArray(cd.code) ? cd.code : [cd.code];
  }
}

v-for="(value, index) in codeArray"
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

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

Войти через центр авторизации
Похожие вопросы