如何在 vuetify 中将文本包装在多个 v-select 中?

我有一个 v-select 组件,如下所示:


<v-select

  class="area-select"

  v-model="selectedAreas"

  multiple

  :items="areas"

  item-text="label"

  item-value="key"

  label="Select" />


...


.area-select {

  margin-left: 10px;

  margin-right: 10px;

  width: 280px;

}

正如您所注意到的,它接受多个值。它还设置了一定的宽度。问题是,当我从这个组件中选择太多选项时,它会增加它的高度。我如何包装选择中显示的文本,而不是放大它?谢谢你的帮助。


UYOU
浏览 118回答 2
2回答

HUH函数

我相信我们没有一种简单的方法来包装显示的文本然后添加省略号或添加overflow: hidden.但是,如果您希望<v-select/>在有多个选择的情况下保持 的高度,则可能需要改用此实现。基本上,您将显示最少数量的选择,然后指定剩余的选择数量。您将为此实现使用selection插槽。<v-select/><v-select&nbsp; ...>&nbsp; <template v-slot:selection="{ item, index }">&nbsp; &nbsp; <span v-if="index < maxDisplay">{{ item.label }} &nbsp;</span>&nbsp; &nbsp; <span&nbsp; &nbsp; &nbsp; v-if="index === maxDisplay"&nbsp; &nbsp; &nbsp; class="grey--text caption"&nbsp; &nbsp; >(+{{ selectedAreas.length - maxDisplay }} areas)</span>&nbsp; </template></v-select>data: () => ({&nbsp; maxDisplay: 2, // how many selections will be displayed on `<v-select/>`&nbsp; selectedAreas: [{ label: "Area 51", key: 1 }],&nbsp; areas: [&nbsp; &nbsp; { label: "Area 51", key: 1 },&nbsp; &nbsp; { label: "Area 52", key: 2 },&nbsp; &nbsp; ...&nbsp; &nbsp; { label: "Area 59", key: 9 }&nbsp; ]})https://i.stack.imgur.com/dd4AH.gif

慕尼黑的夜晚无繁华

当多个选定的内容很大时,高度总是扩大。最佳解决方案是显示所选项目的数量,因为您始终可以通过再次单击选择来取消选择。您可以如下修改选择部分。&nbsp;<v-select&nbsp; &nbsp; &nbsp; &nbsp; class="area-select"&nbsp; &nbsp; &nbsp; &nbsp; v-model="selectedAreas"&nbsp; &nbsp; &nbsp; &nbsp; multiple&nbsp; &nbsp; &nbsp; &nbsp; :items="areas"&nbsp; &nbsp; &nbsp; &nbsp; item-text="label"&nbsp; &nbsp; &nbsp; &nbsp; item-value="key"&nbsp; &nbsp; &nbsp; &nbsp; label="Select">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; <template v-slot:selection="{ index }">&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;<span v-if="index === 0"> Area ({{ selectedAreas.length }})</span>&nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; &nbsp; </template>&nbsp;</v-select>
打开App,查看更多内容
随时随地看视频慕课网APP

相关分类

JavaScript