v-model
on aninput
与此相同:
<input
v-bind:value="searchText"
v-on:input="searchText = $event.target.value"
>
所以如果你同时使用v-model
and :value
,你会得到两次 value 属性,我怀疑这是你得到错误的根源。
为了解决这个问题,从 Vue 2.2.0 开始,您可以使用组件的model
选项来修复这种情况:
允许自定义组件自定义与 v-model 一起使用时使用的道具和事件。默认情况下,组件上的 v-model 使用 value 作为 prop 并将 input 作为 event,但某些输入类型(例如复选框和单选按钮)可能希望将 value prop 用于不同的目的。使用模型选项可以避免这种情况下的冲突。
例子:
// Component
Vue.component('my-checkbox', {
model: {
prop: 'checked',
event: 'change'
},
props: {
// this allows using the `value` prop for a different purpose
value: String,
// use `checked` as the prop which take the place of `value`
checked: {
type: Number,
default: 0
}
},
// ...
})
// Template
<my-checkbox v-model="foo" value="some value"></my-checkbox>
// Is equivalent to
<my-checkbox
:checked="foo"
@change="val => { foo = val }"
value="some value">
</my-checkbox>
既然您说您发布的内容是“代码的抽象样子”,因此很难给出确切的答案,但我认为这会有所帮助。如果没有,请发布一个显示您的错误的最小工作示例。
另外,我测试了您在 IE11 中引用的多个复选框示例,它工作正常。