问题:
项目使用vue2.6+iview3.0,其中有一个需求是下拉框能够输入过滤,iview的select有个filterable属性可以实现这个效果。但是加上这个属性后发现选中文字前后都有大量的空格导致选中的条目位置发生了变化。
导致原因:
- option标签中 {{}} 前后的空格和换行部分被iview读取了
解决办法:
将option标签中换行导致的空格去掉,或者使用label属性接受option赋值就好了
<!--修改之前问题代码-->
<Select v-model='value' filterable>
<Option v-for='(dict, index) in dictList' :value="dict.value" :key="index">
{{dict.label}}
</Option>
</Select>
<!--修改之后将option标签换行的空格去掉就ok了-->
<Select v-model='value' filterable>
<Option v-for='(dict, index) in dictList' :value="dict.value" :key="index">{{dict.label}}</Option>
</Select>
<!--或者使用label属性-->
<Select v-model='value' filterable>
<Option v-for='(dict, index) in dictList' :value="dict.value" :label="dict.label" :key="index"></Option>
</Select>