Vuetify v0.17.6:如何在v-select中获取自动完成文本

时间:2018-01-29 11:50:25

标签: javascript vuejs2 vuetify.js

我正在使用VueJS v2.5.13和Vuetify v0.17.6。

我正在使用自动填充功能构建一个选择,每当用户输入不在列表中的内容时,他们就能看到创建新选项的操作,如下面的代码所示:

<template>
<v-select prepend-icon="view_list" :items="options" label="Quick searches" v-model="selected" item-text="label" autocomplete :search-value="inputText" clearable dense>
    <template slot="item" slot-scope="data">
        <v-flex xs12>
            <v-layout>
                <v-layout justify-start fill-height align-content-center>
                    <span>{{data.item.label}}</span>
                </v-layout>
                <v-layout justify-end row>
                    <v-icon color="success" @click="edit(data)">mod_edit</v-icon>
                    <v-icon color="error" @click="del(data)">delete_forever</v-icon>
                </v-layout>
            </v-layout>
        </v-flex>
    </template>
    <template slot="no-data">
        <v-container>
            <v-layout row>
                <v-layout justify-start fill-height align-content-center>
                    Create new search
                </v-layout>
                <v-layout justify-end>
                    <v-icon color="success" @click="create()">add</v-icon>
                </v-layout>
            </v-layout>
        </v-container>
    </template>
</v-select>

如何访问用户输入的文字以创建新的快速搜索功能?使用用户自动填充文本作为标签?

3 个答案:

答案 0 :(得分:5)

您可以使用:search-input.sync

绑定它
<v-select :search-input.sync="searchInput">

searchInput变量添加到data

data() {
    return {
         //...
         searchInput: "",
    };
}, 

example pen

此外,如果由于debounce-search 属性看起来“滞后”,则会增加200毫秒的延迟。如果要在每次更改时捕获值,可以将其更改为0:

:debounce-search="0"

答案 1 :(得分:0)

我不知道Vuetify是否有更高效的方法,但你应该能够v-on:input=handleInput使用handleInput方法(或其他)来接收值。

答案 2 :(得分:0)

在模板中:

<v-select
    :items="itemList"
    :search-input.sync="searchInput"
    item-text="name"
    autocomplete
/>

在脚本中

data: () => ({
    itemList: [{name: 'John'}, {name: 'Doe'}],
    searchInput: ""
}),