所有JSON项的格式都是这样并保存到/database.json:
"[{\"ndb_no\":01001,\"shrt_desc\":\"BUTTER,WITH SALT\",\"water_(g)\":15.87,\"energ_kcal\":717},\n
{\"ndb_no\":01002,\"shrt_desc\":\"BUTTER,WHIPPED,WITH SALT\",\"water_(g)\":15.87,\"energ_kcal\":717}]"
我想创建一个包含所有shrt_desc
属性的预先输入,我发现的所有教程/示例都非常基础,并且不涉及具有多个属性的文件。
这是我放在一起的但我没有工作:
<div class="form-group">
<input class="typeahead" type="text">
</div>
<script>
var description = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('shrt_desc'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 10,
prefetch: {
url: '/database.json',
}
});
$('#prefetch .typeahead').typeahead(null, {
name: 'countries',
displayKey: 'shrt_desc',
source: countries.ttAdapter()
});
</script>
如果我想添加更多信息,请告诉我。
答案 0 :(得分:0)
您的代码有各种错误。请看下面的评论:
var description = new Bloodhound({
datumTokenizer: Bloodhound.tokenizers.obj.whitespace('shrt_desc'),
queryTokenizer: Bloodhound.tokenizers.whitespace,
limit: 10,
prefetch: {
url: '/database.json',
}
});
description.initialize() /****** THIS WAS MISSING ******/
$('.typeahead').typeahead(null, { /***** gotta match an existing input ***/
name: 'countries',
displayKey: 'shrt_desc',
source: description.ttAdapter() /***** WAS countries.ttAdapter(), countries does not exist ****/
});
</script>
但是,因为在您基于代码的typeahead示例中可以很容易地看到这一点,我假设真正得到的是无效的JSON:
JSON整数绝不能以零(0)
开头
你的ndb_no字段从零开始。这打破了猎犬/先行者,导致他们无声地失败。引用它们,并应用我提到的修复程序,你应该很高兴。