过滤搜索结果typeahead.js
filtering search results typeahead.js
我有一个问题:我正在传递一个过滤器到我的搜索结果:这工作得很好,但是typeahead.js缓存已经搜索的查询。
1。当我的过滤器被检查时,输入"黑桃"。(7)
2。使用我的过滤器函数运行查询,从我的数组中删除任何匹配过滤器的结果。(5场)
3。禁用我的过滤器
4。运行相同的查询"spades",返回2个结果。(预期7个结果,实际2个结果)
解决这个问题的最好方法是什么?
var card_search = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('CARD_NAME'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
// prefetch: '',
remote: {
url : '/search/queries/%QUERY',
filter: testfilter
}
});
card_search.initialize();
过滤功能:
function testfilter(data)
{
$("input:checkbox[name=filtericons]:checked").each(function()
{
var filter = $(this).attr('id');
if(data.length > 0)
{
for (var i = 0; i < data.length; i++) {
var datum;
datum = data[i];
if ((typeof(datum.SUITE) != "undefined") )
{
for(var k=0; k< datum.SUITE.length;k++)
{
if( datum.SUITE[k] == filter)
{
// data[i]['CARD_VIS'] = 'none';
delete data[i];
}
}
}//end if
}
}
});
return data;
}
在JavaScript中,您通过引用传入数组。
所以当你执行delete data[i]
时,我相信你是在删除从远程获取中缓存的数据。
在你的过滤器函数中,试试:
function testfilter(remoteData)
{
var data = remoteData.slice();
$("input:checkbox[name=filtericons]:checked").each(function()
{
var filter = $(this).attr('id');
if(data.length > 0)
{
for (var i = 0; i < data.length; i++) {
var datum;
datum = data[i];
if ((typeof(datum.SUITE) != "undefined") )
{
for(var k=0; k< datum.SUITE.length;k++)
{
if( datum.SUITE[k] == filter)
{
// data[i]['CARD_VIS'] = 'none';
delete data[i];
}
}
}//end if
}
}
});
return data;
}
相关文章:
- Typeahead.js未显示异步结果
- jquery.proxy in the bootstrap-typeahead.js context
- 如何扩展bootstrap-typeahead.js这样的库
- 如何将typeahead.js(Bloodhound)添加到jQuery动态创建的字段中
- 通过Typeahead.js提供建议
- 如何让Typeahead.js使用对象的一个字段而不是全部字段自动完成或选择
- TypeAhead.js没有显示任何输出Rails
- 停止jQuery表单验证重置由其他JavaScript填充的typeahead.js输入字段
- 如何禁用typeahead:在远程typeahead.js中聚焦已填充的文本字段时处于活动状态
- Typeahead.js未显示预取数据的自定义模板
- Angular js typeahead不起作用
- 通过data URL参数将URL传递给typeahead.js
- 如何将typeahead.js与nested_form gem一起使用
- 使用Typeahead.js/Bloodhound.js在远程和本地源之间切换
- 阻止typeahead.js下拉列表在选择时关闭
- Typeahead.js-特殊字符返回为“”&#230"等
- Typeahead.js远程工作,但预取不工作't
- 从输入框中删除 TypeAhead.js 事件
- 为什么typeahead-js不在Meteor上运行,而是在本地工作
- Twitter Typeahead.js库是否仅限于6个数据集