Ich möchte immer mindestens ein Kontrollkästchen aktiviert haben, aber ich mische die Konzepte v-model
und :checked
.In Vue, wie wird ein Kontrollkästchen basierend auf einer Bedingung abgebrochen?
Die doc sagt:
v-model
ignoriert die erstenvalue
,checked
oderselected
Attribute auf alle Formularelemente gefunden. Es wird immer die Vue-Instanzdaten als Quelle der Wahrheit behandeln.
ich mein Modell modifiziert werden, verhindern kann, aber ich das Kontrollkästchen aktiviert ... Einige Code
werden nicht verhindern können:
Die Vorlage
<div class="wrapper" v-for="(s, id) in userOutputSeries" :key="id">
<input type="checkbox" :id="id" :value="id" @change="preventIfLessThanOneChecked" :checked="s.active">
<label :for="id">{{ s.display }}</label>
</div>
Das Modell userOutputSeries
data() {
return {
userOutputSeries: {
foo: {
display: 'Awesome Foo',
active: true
},
bar: {
display: 'My Bar',
active: false
}
}
}
}
Die preventIfLessThanOneChecked
Handler
preventIfLessThanOneChecked (event) {
// I don't update the model so it stay at the same state
// But only need to count the active series and do what we want.
console.log(event.target.value, event.target.checked)
}
Irgendwelche Ideen die native Checkbox Ausbreitung zu stoppen?
Ich war fest damit, das Ereignis zu verhindern, anstatt an die Daten zu denken ... Danke! –