Skip to content

Instantly share code, notes, and snippets.

@parserpro
Created December 3, 2019 09:03
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save parserpro/2f1b15aa992840a3d37376341a908441 to your computer and use it in GitHub Desktop.
Save parserpro/2f1b15aa992840a3d37376341a908441 to your computer and use it in GitHub Desktop.
<script src="https://cdn.jsdelivr.net/npm/vue/dist/vue.js"></script>
<div id="<%= $widget_id %>">
<input type="button" @click="addRow" value="Добавить" />
<ul>
<li v-for="(input, index) in inputs">
<input type="text" v-model="input.value" :name="'suggest_<%= $widget_id %>_' +index" />&nbsp;
%# в зависимости от числа инпутов показываем разные кнопки
<input v-if="inputs.length == 1" type="button" @click="deleteRow(index)" value="Очистить" />
<input v-if="inputs.length > 1" type="button" @click="deleteRow(index)" value="Удалить" />
</li>
</ul>
</div>
%#----------------------------------------------------------------------------------------------------------
%# TODO: переделать в компонент
<script>
var app = new Vue({
el: '#<%= $widget_id %>',
data: {
// стартуем с одним инпутом
inputs: [{value: ''}]
},
methods: {
addRow() {
this.inputs.push({
value: ''
})
},
deleteRow( index ) {
// если инпутов больше одного то один убираем
if ( this.inputs.length > 1 ) {
this.inputs.splice(index,1)
}
// если инпут один - очищаем его
else {
this.inputs[0].value = ''
}
}
}
})
</script>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment