Локальный объект json не работает в Typahead Bloodhound

Я использую Typeahead Bootstrap в поле формы (с платформой WP).

У меня есть файл .json, хранящийся в моем корне, который я могу получить с помощью предварительной выборки:

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":"Название 1","content":"Безумные туалеты"},{"title":"Название 2","content":"Diddly Bones"}]

 var content = new Bloodhound({
   datumTokenizer: function (d) { 
     return Bloodhound.tokenizers.whitespace(d.content);
   },
   local: jsonObject
   ...

Это не работает. Кажется, это что-то простое, и я просто полностью упускаю это из виду.

Полное пояснение, я запрашиваю базу данных wp и с помощью этого набора результатов создаю файл json и записываю его в тестовый каталог, а затем передаю его в файл .js с помощью wp_localize_script.


person Carey Estes    schedule 11.03.2015    source источник


Ответы (1)


После объявления объекта Bloodhound попробуйте инициализировать объект.

var content = new Bloodhound({
   datumTokenizer: function (d) { 
     return Bloodhound.tokenizers.whitespace(d.content);
   },
   local: jsonObject
   ...
})

контент.инициализировать();

person jmc    schedule 05.05.2015