Здравствуйте, вот рабочий пример:
<label for="fname">Your toggle:</label><br>
<input v-model.number="input" type="text" id="fname" style="border: 1px solid black">
<button @click="toggle(input)">Change toggle view</button>
<div class="nav-drop" v-for="(el, index) in listToShow" :key="index">
{{el}}
</div>
export default {
name: "Test",
data: () => ({
toggles: [
1,
2,
3,
4,
5
],
hiddenToggles: [],
input: '',
}),
methods: {
toggle(value) {
if (!value)
return
let index = this.hiddenToggles.findIndex(el => value === el)
if (index > -1)
this.hiddenToggles.splice(index, 1)
else
this.hiddenToggles.push(value)
},
},
computed: {
listToShow() {
return this.toggles.filter(value =>
this.hiddenToggles.findIndex(el => el === value) === -1)
}
}
}
Суть есть 5 toggles от 1 до 5. Они рисуются в цикле.
В input пишите номер, какой toggle нужно скрыть или отобразить.
Сами toggles, которые должны быть показаны считаются в computed.