有没有办法在打开下拉列表之前过滤typeahead.js选项?

时间:2013-09-01 09:26:06

标签: javascript typeahead.js

typeahead.js具有prefetch选项,可在需要之前获取基准。

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

我想要的是根据文档中的一些信息过滤选择。使用prefetch选项时,filter也可以过滤初始基准。但这只会过滤初始提取。我需要的确是prefetch但是有一个钩子可以在它们显示之前过滤掉一些数据。

typeahead.js有这个事件typeahead:opened但它没有参数(不能处理基准)并且在下拉列表中呈现基准之前被触发(所以我不能写一段代码来删除一些渲染的基准)

有什么办法吗?

PS:我还在typeahead.js项目中添加了这个issue

1 个答案:

答案 0 :(得分:2)

我想您可以使用remote(进行AJAX调用)并将文档数据传递到服务器端,并填充服务器端。

立即暗示黑客行为:

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

  2. 拥有一个空的远程URL(或指向不执行任何操作的端点的URL),并在 filter中,读取您存储在{{ 1}} prefetch,对文档数据执行任何操作,并返回其中的任何子集。