Я хочу отобразить массив элементов вроде этого:
[...] /* onClick --> */ [1, 2, 3]
[1, 2, 3] /* onClick --> */ [...]
Моя проблема заключается в том, что я добавляю этот массив динамически, поэтому у меня не может быть такой переменной, как isHidden
в самом коде.
Я добавляю массив следующим образом:
let arr_shown = `<span class="toggle">[${myArrayString}]</span>`;
let arr_hidden = `<span class="toggle">[...]</span>`;
и в HTML:
<span v-html="arr_shown"></span> <!-- or arr_hidden -->
Я использую vuejs2
для моегопроект. Как можно переключаться между arr_shown
и arr_hidden
при клике?
Редактировать
У меня есть prop
, как это:
props: ['arrays']
У меня естьcomputed
значение, подобное этому:
convertedArrays() {
let data = []
for (let array of this.arrays) {
data.push(`<span class="toggle">[${array.join()}]</span>`)
}
return data;
}
И я использую в HTML, как это:
<tr v-for="item in convertedArrays">
<td><span v-html="item"></span></td>
</tr>
Обновление
Что делать, если у меня есть массив различныхобъекты, переданные в prop
arrays
, пример:
:arrays="[1, 2, [1, 2, 3], 3]"
Я не хочу ничего делать с числами, но применяю решение к массивам. Пример вывода:
1
2
[...] /*or*/ [1, 2, 3]
3
Как это сделать?
Должен ли я сделать что-то подобное, чтобы уведомить компонент, которому я передаю реквизит, типа элемента:
:arrays="[1, 2, {type: 'array', value: [1, 2, 3]}, 3]"
и в компоненте:
for (let item of this.arrays) {
if (!!item.type) {
/* array */
} else {
/* number */
}
}