本地 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 对象

Java 保存对象到本地

Java 保存对象到本地

如何使用本地 JSON 对象作为 jQuery DataTables 的数据源

如何在颤振本地化中读取嵌套的 json?

json常用方法和本地存储方法