Maison > Questions et réponses > le corps du texte
P粉3434089292023-09-03 00:21:00
Les erreurs non définies et non gérées ne peuvent pas se reproduire et vous devez déboguer davantage.
Mais vous émettez la fonction d'émission, ce qui est bizarre, et la valeur est toujours filter.id
qu'elle soit cochée ou non.
Vous voudrez peut-être faire quelque chose comme ce qui suit :
new Vue({ el: '#app', components: { 'Checkbox': { template: '#checkbox-template', props: { label: { type: String, default: '' }, value: { type: Boolean, default: false }, id: { type: String, default: '' } } } }, data: () => ({ filters: [{ id: 1, name: 'a', selected: true, },{ id: 2, name: 'b', selected: false, }] }), methods: { mutuallyExclusive(value) { console.log(value) } } })
<div id="app"> <Checkbox v-for="filter of filters" :key="filter.id" :label="filter.name" :id="filter.id" v-model="filter.selected" @change="mutuallyExclusive" /> </div> <template id="checkbox-template"> <div class="filter"> <input :ref="id" :id="id" type="checkbox" class="filter-checkbox" :checked="value" @change="$emit('change', {value:$event.target.checked, id})" /> <span v-if="label">{{ label }}</span> </div> </template> <script src="https://cdnjs.cloudflare.com/ajax/libs/vue/2.5.14/vue.min.js"></script>