如何在vuetify的v-combobox中使用无数据文本道具?



你好,我有一个简单的组合框在我的应用程序,我想指定默认的文本消息,应在屏幕上显示时,没有条目在项目道具。

<v-combobox
:items="someValues"
dark
color="white"
:no-data-text="noDataText"
></v-combobox>

出于上述目的,我使用了名为no-data-text的道具,并向其传递了一些变量。我期望,当我点击空的组合框,我的消息将显示出来。我在过去的一些选择中使用了这种机制,它工作得很好。如何实现这样的行为与组合框?

您可以使用labelprop:

<v-combobox
:items="someValues"
dark
color="white"
:label="noDataText"
></v-combobox>

如果您不希望它在有someValues时出现在框的上方,您可以有条件地使用它:

<v-combobox
:items="someValues"
dark
color="white"
:label="someValues && someValues.length ? '' : noDataText"
></v-combobox>

您使用的是哪个vuetify版本?

实际上vuetify 2.4.3有你寻找的行为,但它只是看起来不工作。

同时,您可以使用Slot选项。您可以在下面的代码中查看两个版本。

Prop文档"no-data-text">

Slot documentation "no-data">

new Vue({
el: '#app',
vuetify: new Vuetify(),
data: () => {
return {
items: [],
combobox: null
}
}
})
<head>
<link href="https://fonts.googleapis.com/css?family=Roboto:100,300,400,500,700,900" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/@mdi/font@4.x/css/materialdesignicons.min.css" rel="stylesheet">
<link href="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.min.css" rel="stylesheet">
<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no, minimal-ui">
</head>
<body>
<div id="app">
<v-app>
<v-main>
<v-container>
<v-combobox
v-model="combobox"
label="Prop"
:items="items"
no-data-text="[Prop] Sorry, we dont have data for you!">
</v-combobox>
<v-combobox
v-model="combobox"
label="Slot"
:items="items">
<template v-slot:no-data>
<p class="ml-3 mt-3">[Slot] Sorry, we dont have data for you!</p>
</template>
</v-combobox>
</v-container>
</v-main>
</v-app>
</div>
<script src="https://cdn.jsdelivr.net/npm/vue@2.x/dist/vue.js"></script>
<script src="https://cdn.jsdelivr.net/npm/vuetify@2.x/dist/vuetify.js"></script>
</body>

最新更新