【发布时间】:2019-10-23 09:10:54
【问题描述】:
在使用 vuetify 的 v-select 组件时,我试图防止某个值被“选中”。
给定:
<v-checkbox
v-model="allowChanges"
></v-checkbox>
<v-select
v-model="twoWayComputed"
:items="items"
></v-select>
new Vue({
el: '#app',
data: () => ({
selected: "Foo",
allowChanges: false,
items: ['Foo', 'Bar', 'Fizz', 'Buzz']
}),
computed: {
twoWayComputed: {
get(){
return this.selected
},
set(val){
if (this.allowChanges){
console.log("updating")
this.selected = val
}
}
}
}
})
Codepen:https://codepen.io/anon/pen/mYNVKN?editors=1011
When another value is selected, the components selected value is not being updated.但是 v-select 仍然显示新的选择值。
我什至尝试了各种“技巧”,比如
set(val){
if (this.allowChanges){
console.log("updating")
this.selected = val
} else {
this.selected = this.selected
}
但没有运气。
我相信 v-select 正在维护自己的内部选择值。
【问题讨论】:
-
您可以将
:disabled="!allowChanges"添加到v-select吗?像这样:<v-select v-model="twoWayComputed" :items="items" label="Standard" :disabled="!allowChanges" ></v-select> -
你可以,但这不是规定的用户体验。作为参考,如果进行了更改并且有未保存的更改,则希望弹出一个模式
标签: javascript vue.js vuetify.js