H0f*_*0fi 5 javascript combobox vue.js vuetify.js
我在使用 v-combobox 时遇到问题。(参见
代码示例)。
如果我执行以下操作,就会出现问题:
在执行保存命令期间如何获取“value”的实际值?
<template>
<v-app>
<div id="app">
<v-card>
<v-card-text>
<v-container>
<v-combobox v-model="value" label="write"></v-combobox>
</v-container>
</v-card-text>
<v-divider></v-divider>
<v-card-actions>
<v-spacer></v-spacer>
<v-btn text color="secondary" @click="save">save</v-btn>
</v-card-actions>
</v-card>
</div>
</v-app>
</template>
<script>
export default {
name: "App",
data() {
return {
addDialog: "false",
value: ""
};
},
methods: {
save() {
console.log(this.value);
this.addDialog = false;
}
}
};
</script>
Run Code Online (Sandbox Code Playgroud)
那么让我们从正确的做法开始:
但是,对于组合框,默认行为是 v-model 变量实际上不会更新,直到您失去对输入的焦点。如果您尝试使用上面的代码,在组合框中写入一些内容,然后单击/跳出它,然后单击“保存”,它应该按您的预期工作。
为了让它自动工作,我们实际上可以通过使用模糊方法在 save() 中失去组合框的焦点。
首先,向组合框添加引用。然后,在保存函数中执行的第一件事就是调用该引用的模糊方法。最后,在尝试 console.log 之前,我们需要使用 nextTick 确保该值已完全更新。代码的更新部分如下所示:
<v-container>
<v-combobox v-model="value" ref="myComboBox" label="write"></v-combobox>
</v-container>
...
save() {
this.$refs["myComboBox"].blur();
this.$nextTick(() => {
console.log(this.value);
this.addDialog = false;
});
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3303 次 |
| 最近记录: |