如何保持字符的默认突出显示替换项目的作用域槽。
https://vuetifyjs.com/en/components/autocompletes#scopedSlots
默认 , 将输出一个 v-list,其中输入中的每个字符在输出中都被“高亮显示”。
<v-autocomplete
v-model="model"
:items="items"
:loading="isLoading"
:search-input.sync="SomeApiDataCall"
item-text="name"
item-value="id"
>
</v-autocomplete>
Run Code Online (Sandbox Code Playgroud)
自定义范围槽 :我想更改列表的设计,但想保留“突出显示”的输出
<v-autocomplete
v-model="model"
:items="items"
:loading="isLoading"
:search-input.sync="SomeApiDataCall"
item-text="name"
item-value="id"
>
<template slot="item"
slot-scope="{ item, tile }"
>
<v-list-tile-content >
<!--the html output needs to be highlighted-->
<v-list-tile-title v-html="item.name"></v-list-tile-title>
</v-list-tile-content>
</template>
</v-autocomplete>
Run Code Online (Sandbox Code Playgroud)
VAutocomplete 导入 > VSelect,导入 > VSelectList
VSelectList 有一个名为genFilteredText的函数
https://github.com/vuetifyjs/vuetify/blob/dev/src/components/VSelect/VSelectList.js#L112
那会做我想做的。如何在自定义 scoped-slot 中实现这一点?
谢谢。
slot-scope Item 也可以接收“parent”。之后,您可以访问其上的任何方法。
<template
slot="item"
slot-scope="{ parent, item, tile }"
>
<v-list-tile-content>
<!-- Highlight output item.name -->
<v-list-tile-title
v-html="parent.genFilteredText(item.name)"
>
</v-list-tile-title>
</v-list-tile-content>
</template>
Run Code Online (Sandbox Code Playgroud)
我对 vue 很陌生,我花了一段时间才将这个问题/解决方案翻译成新的 Slots 语法。
对于也在使用新v-slot:item="data"
语法的任何人,您可以按如下方式接收父级:
<template v-slot:item="{ parent, item }">
<v-list-tile-content >
<!--Highlight output item.name-->
<v-list-tile-title
v-html="`${parent.genFilteredText(item.name)}`"
></v-list-tile-title>
</v-list-tile-content>
</template>
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
5996 次 |
最近记录: |