VueJs2 чекбокс v-bind:true-значение не работает

Я создал приложение vuejs2, используя vue-cli. Я пытаюсь привязать динамическое значение для флажка, как сказано в документации vuejs: привязка значения. Но это дает мне неопределенный. Если я не связываю vlaue, это дает мне истину или ложь. Это мой компонент ValueBinding.vue.

<template>
    <div id="input">
        <p> Selected value for smoking: {{ smoking }} </p>
        <input v-model="smoking" v-bind:true-value="Y" v-bind:false-value="N" type="checkbox">
        <label>No Smoking</label>
        <br>
        <button @click="submit">Submit</button>
    </div>
</template>
<script>
    export default {
        name: 'value-binding',
        data() {
            return {
                smoking: ''
            }
        },
        methods: {
            submit() {
                console.log(this.smoking) //shows undefined
            }
        }
    }
</script>

Я новичок в vuejs. Заранее спасибо.

1 ответ

Решение

Когда вы используете v-bind, он динамически связывает один или несколько атрибутов с выражением. В вашем случае, когда вы делаете

v-bind:true-value="Y"

Он попытается найти атрибут данных: Y в случае, если вы не определили ни одного такого атрибута, он станет неопределенным.

Если вы просто хотите, чтобы значение true было "Y", а значение false- "N", сделайте следующее:

<input v-model="smoking" true-value="Y" false-value="N" type="checkbox">
Другие вопросы по тегам