J'ai une liaison de données qui contient la chaîne suivante:
<div class="js-referencing-categories">{{ product.refrencing_category_ids }}</div>
<input class="" required type="text" name="fname">
<button class="" v-on:click="product.refrencing_category_ids.add.value">
Add
</button>
Je voudrais avoir un champ de saisie dans lequel je pourrais ajouter "bc-some-category" code> puis cliquez sur "Ajouter" et il serait ajouté à la fin de la liste avec un, (virgule) devant.
Mon balisage ressemble à ce qui suit:
bc-men,bc-men-fashion,bc-men-underwear
Que dois-je faire pour y parvenir, je ne semble pas trouver de documentation à ce sujet dans le guide vueJS.
3 Réponses :
https://jsfiddle.net/30hyzqsp/
Je ne sais pas trop Comprenez votre question, mais cela devrait faire l'affaire. Vous devrez vous adapter à votre structure de données tho:
<template>
<div>
<div class="js-referencing-categories">{{ categories.join(', ') }}</div>
<input class="" required type="text" name="fname" ref="input">
<button class="" @click="addCategory($refs.input)">
Add
</button>
</div>
</template>
<script>
export default {
data () {
return {
categories: []
}
},
methods: {
addCategory (e) {
this.categories.push(e.value)
e.value = ''
}
}
}
</script>
Vous devez stocker ce que l'utilisateur a tapé dans votre entrée, par exemple en utilisant v -model :
methods: {
addProduct () {
this.product.refrencing_category_ids += `,${this.userInput}`;
this.userInput = '';
}
}
<button class="" v-on:click="addProduct">
Add
</button>
Ensuite, chaque fois que l'utilisateur clique sur le bouton Ajouter , vous ajoutez cette valeur:
<input class="" v-model="userInput" required type="text" name="fname">
data () {
return {
userInput: ''
}
}
Voici un bon tutoriel laracasts.com/series/learn -vue-2-étape par étape / épisodes / 5