我在项目中使用了“vue-MultiSelect”包中的“Single Select”对象进行“搜索选择”。选择列表中的选项太长(因为它们是站点地址/URL),它们流过输入框大小并破坏UI。我可能需要设置一个字符限制来填充值,这可能有助于保持UI完整。我可以使用哪个类来限制填充的文本的长度?或者有什么更好的选择?
对于正常选择列表,我们可以设置数据限制,如data-limit =“37”,以限制文本长度。
<select
v-model="filter.url_name"
class="w-4/6 relative truncate overflow-hidden form-select pr-10 appearance-none "
aria-label="Default select example">
<option
class="absolute w-4/6 truncate overflow-hidden right-0"
data-limit="37"
:value="item"
v-for="(item, index) in requiredUrlsFiltersData"
:key="index"
>
{{ item }}
</option>
</select>
对于vue-multi select,我尝试了同样的方法,并尝试将其传递到如下所示的方法中
@input="
siteSelected(
filter.url_name,
37,
filter.url_name.length
)
"
并返回值
siteSelected(str, max, len) {
return len > max ? str.substring(0, 37) : str;
},
两个都不管用。
<multiselect
v-model="filter.url_name"
:options="requiredUrlsFiltersData"
placeholder="select a url"
class="max-w-sm"
data-limit="37"
:rules="maxlength"
@input="
siteSelected(
filter.url_name,
37,
filter.url_name.length
)
"
:show-labels="false"
>
</multiselect>
1条答案
按热度按时间lp0sw83n1#
您可以尝试使用计算属性。为
requiredUrlsFiltersData
创建计算属性,在那里您可以限制url的长度并将:options
与新的缩短值连接。第一个