当用户选择我通过v-for
渲染的复选框之一时,我想调用一个方法。它们都通过v-model
绑定到一个变量。问题是input
似乎在v-checkbox
上不可用。下面的代码不执行任何操作:
<template>
<v-container>
<v-layout row>
<v-flex xs12>
<v-layout justify-center>
<v-form ref="form" lazy-validation>
<v-checkbox
v-for="(answer, index) in questions[actualIndex].answers"
:key="index"
:ref="'check'+index"
:label="answer.answer"
:value="answer.answer"
v-model="checkbox"
@input="onInput()"
></v-checkbox>
</v-form>
</v-layout>
</v-flex>
</v-layout>
</v-container>
</template
export default { data() { return { checkbox: '' } }, methods: { onInput() { console.log("WORKS"); } } }
但是,如果我改用@change
或@click
事件,它可以完美运行。 知道我做错了什么吗?
VCheckbox
的v-model
绑定到input-value
道具和change
事件,因此它不会对input
事件做出反应。 从规范中看并不明显,我必须阅读源代码才能理解它。
当我需要做一些比简单地更新变量更复杂的事情时,我会这样做。
<v-checkbox
:input-value="some expression"
@change="doWhatever($event)"
></v-checkbox>
如果您需要的是更新变量并获取回调,那么v-model
和@change
就是要走的路。