有没有一种方法在打开下拉列表之前过滤typeahead.js的选择?

3

typeahead.js有prefetch选项,可以在需要之前获取数据。

$('input').typeahead({
    "prefetch": "/selections_url"
});

我希望的是根据文档中的某些信息来筛选选择内容。使用filter选项时,prefetch还可以过滤初始数据。但这只过滤了初始获取的数据。我需要的确实是prefetch,但需要一个钩子来在显示之前过滤掉一些数据。 typeahead.js有这个事件typeahead:opened,但它没有参数(无法处理数据),并且在下拉列表中呈现数据之前触发(因此我无法编写代码以删除一些呈现的数据)。
有什么办法可以做到这一点吗?
附:我还在typeahead.js项目中添加了这个issue
1个回答

2

我认为你可以使用remote(进行AJAX调用)并将文档数据传递到服务器端,然后由服务器端填充。

这里立即暗示一个hack:

  1. 使用prefetch,在其filter中存储对数据的引用。让filter()本身返回一个空集。

  2. 使用一个空的远程URL(或指向什么都不做的终点的URL),并在filter中读取您在prefetchfilter中存储的数据,对文档数据执行任何操作,并返回其中的任何子集。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接