【发布时间】:2016-10-25 13:26:18
【问题描述】:
所以我传递了一个如下所示的对象:
[{id: 1, name: 'Project A', type: 'C'}, {id: 2, name: 'Project B', type: 'A'},]
我正在尝试像这样通过 Bloodhound 引擎:
var mySource = new Bloodhound({
identify: function (obj) { return obj.id; },
queryTokenizer: Bloodhound.tokenizers.whitespace,
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('name'),
local: datasource
});
像这样被 typeahead.js 使用:
$(control)
.typeahead({
hint: true,
highlight: true,
minLength: 0
},
{
source: mySource
});
但它根本不起作用。我不确定我做错了什么。
我只希望名称可搜索。
稍后会为.on('typeahead:autocomplete') 传递 ID 和类型。
编辑:
控制台中没有错误,在 Bloodhound 对象创建之后立即输入 console.log(mySource); 会生成一个 Bloodhound 对象:
【问题讨论】:
-
控制台有错误吗?你可能需要给它一个名字:
{ name: 'my-typeahead', source: mySource } -
这是因为你的
.typeahead()下面设置错了检查。您的mySource是 Bloodhound 对象,但您没有名称或 displayKey -
Joseph:我发布了一些控制台信息。 (虽然问题现在已经解决了)- 不过还是谢谢!
标签: javascript arrays typeahead.js bloodhound