本地 json 对象在 Typahead Bloodhound 中不起作用
Posted
技术标签:
【中文标题】本地 json 对象在 Typahead Bloodhound 中不起作用【英文标题】:Local json object not working in Typahead Bloodhound 【发布时间】:2015-05-13 19:49:54 【问题描述】:我在表单字段中使用 Typeahead Bootstrap(带有 WP 框架)。
我有一个 .json 文件存储在我的根目录中,我可以使用 prefetch 获取它:
prefetch:
url: '
../json/test.json',
ttl: 1
菜单效果很好。现在,假设我不想使用预取,而是将数据加载到本地 json 数组中。
我有相同的 json 文件,如下所示:
["title":"Title 1","content":"Loopty loos","title":"Title 2","content":"Diddly Bones"]
如果我将它直接加载到新的 Bloodhound 类中:
local: ["title":"Title 1","content":"Loopty loos","title":"Title 2","content":"Diddly Bones"]
再次,就像一个魅力。但是,如果我尝试将相同的数据作为变量加载,而不是显式写入:
jsonObject = ["title":"Title 1","content":"Loopty loos","title":"Title 2","content":"Diddly Bones"]
var content = new Bloodhound(
datumTokenizer: function (d)
return Bloodhound.tokenizers.whitespace(d.content);
,
local: jsonObject
...
它不起作用。这似乎很简单,我只是完全想念它。
完全澄清,我正在查询 wp 数据库,并使用该结果集创建 json 文件并将其写入测试目录,然后使用 wp_localize_script 将其传递给 .js 文件。
【问题讨论】:
【参考方案1】:声明 Bloodhound 对象后,尝试初始化该对象。
var content = new Bloodhound(
datumTokenizer: function (d)
return Bloodhound.tokenizers.whitespace(d.content);
,
local: jsonObject
...
)
content.initialize();
【讨论】:
以上是关于本地 json 对象在 Typahead Bloodhound 中不起作用的主要内容,如果未能解决你的问题,请参考以下文章
如何在 FutureBuilder 中解析从本地主机接收的 JSON 对象