Я делаю компонент, который является оберткой вокруг флажка (я сделал то же самое с вводами типа 'text' и 'number'), но я не могу получить свое переданное значение для правильного связывания.
Мой компонент:
<template>
<div class="field">
<label :for="name" class="label">
{{ label }}
</label>
<div class="control">
<input :id="name" :name="name" type="checkbox" class="control" :checked="value" v-on="listeners" />
</div>
<p v-show="this.hasErrors" class="help has-text-danger">
<ul>
<li v-for="error in errors" :key="error">{{ error }}</li>
</ul>
</p>
</div>
</template>
<script>
export default {
name: 'check-edit',
props: {
value: {
type: Boolean,
default: false
},
label: {
type: String,
default: ''
},
name: {
type: String,
default: ''
},
errors: {
type: Array,
default: () => []
}
},
mounted () {
},
computed: {
listeners () {
return {
// Pass all component listeners directly to input
...this.$listeners,
// Override input listener to work with v-model
input: event => this.$emit('input', event.target.value)
}
},
hasErrors () {
return this.errors.length > 0
}
},
}
</script>
Я импортировал его глобально;и я вызываю его в другом представлении, выполнив:
<check-edit name="ShowInCalendar" v-model="model.ShowInCalendar" label="Show in calendar?" :errors="this.errors.ShowInCalendar"></check-edit>
Моя модель находится в данных, а свойство ShowInCalendar является логическим, и в моем тестовом случае значение true.Поэтому, когда я просматриваю страницу, флажок установлен.Используя инструменты Vue в Firefox, я вижу модель. ShowInCalendar имеет значение true, и флажок установлен.Однако, когда я щелкаю по нему, флажок остается установленным, и значение ShowInCalendar изменяется на 'on', а затем изменяются, не изменяя значение ShowInCalendar.
Я нашел этот пример здесь: https://jsfiddle.net/robertkern/oovb8ym7/и пытался реализовать локальное свойство данных для него, но результат не работает.
Суть того, что я пытаюсь сделать, - это иметь начальное контрольное состояние флажка, равное ShowInCalendar (или какому-либо другому свойству).привязывается через v-модель к компоненту), а затем необходимо обновить это свойство (чтобы оно было истинным или ложным), когда флажок установлен.
Может кто-нибудь дать мне какой-нибудь совет, пожалуйста?
Спасибо.