v-model
на input
делает то же самое, что и это :
<input
v-bind:value="searchText"
v-on:input="searchText = $event.target.value"
>
Так что, если вы используете v-model
и :value
, вы получите атрибут value дважды, который, как я подозреваю, является источником получаемой вами ошибки.
Чтобы решить эту проблему, начиная с версии 2.2.0, вы можете использовать model
параметр компонента, чтобы исправить эту ситуацию:
Позволяет настраиваемому компоненту настраивать опору и событие, используемое при использовании с v-моделью. По умолчанию v-модель в компоненте использует значение в качестве реквизита и ввод в качестве события, но некоторые типы ввода, такие как флажки и переключатели, могут использовать значение проп для другой цели. Использование опции модели позволяет избежать конфликта в таких случаях.
Пример: * * один тысяча двадцать-одна
// 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, и он отлично работает.