我想用select2实现的目的是在单击选择时显示所有选项(这是默认行为),但只在输入字段中有3个或更多字符时过滤结果。
我可以使用minimumInputLenght选项添加所需的最小字符,但是我丢失了选项的初始列表。
答案 0 :(得分:0)
您可以使用matcher。
来实现此目的我已经定义了一个匹配器如下:
val totalById = list
.filter { it.status == StatusEnum.Active }
.groupBy { it.item.id }
.mapValues { it.value.sumBy { it.amount } }
Collectors.groupingBy(i-> i.getItem().getId(), Collectors.mapping(Item::getAmount, Collectors.reducing(BigDecimal.ZERO, BigDecimal::add))))
是输入的字符,matcher: function(term, data) {
// If less than 3 characters are typed return all of the data
if (term.length < 3) {
return data;
}
// 3 or more characters typed so perform filter
return data.toUpperCase().indexOf(term.toUpperCase()) == 0;
}
是我们要检查的数据。检查term
的长度,如果小于3,则返回此data
项(因为我们希望显示所有项目)。否则(即输入3个或更多字符),我们检查term
项是否包含data
类型,如果为真则返回
请参阅this Fiddle了解演示。键入3个或更少字符时,将显示完整列表。如果执行过滤,则输入的字符数超过3个。