typeahead.js работает хорошо, когда результаты возвращаются будет массив:Как предварительно обрабатывать результаты typeahead.js json перед тем, как перейти к шаблонам (hogan.js)?
var simpleCountriesList = [
"Andorra",
"United Arab Emirates",
"Afghanistan",
"Antigua and Barbuda"
];
В моем случае, есть массив объектов, но он обернут в объекте, как это:
var countryObjectsWrappedInResults = {
"results":[
{
"name":"Andorra"
},
{
"name":"United Arab Emirates"
},
{
"name":"Afghanistan"
},
{
"name":"Antigua and Barbuda"
}
]
};
или
{
"maintainers":[
{
"name":"Jake Harding",
"url":"https://twitter.com/JakeHarding"
},
{
"name":"Tim Trueman",
"url":"https://twitter.com/timtrueman"
},
{
"name":"Veljko Skarich",
"url":"https://twitter.com/vskarich"
}
]
}
Я создал небольшую jsbin, чтобы проиллюстрировать эту проблему как с локальным и удаленным: http://jsbin.com/OseWeKA/5/edit
Я переношусь из bootstrap typeahead, где я смог использовать updater, чтобы вытащить массив из результатов. Что эквивалентно для twitter.js?
Спасибо Nitzan, фильтр - правильный подход, но мне нужно использовать шаблон и присоединиться к нескольким полям, и мой прекомпилированный шаблон кажется неудачным. Я нашел следующий пример: var template = Hogan.compile ("/% name% /", {delimiters: '/%% /'}), precompiled = function (context) {template.render (context); }; но что-то кажется неправильным. Вы знакомы с шаблонами? Знаете ли вы, чего не хватает? – JStark
В любом случае используйте шаблон, но его не нужно предварительно прекомпилировать. Просто передайте строку, такую как '{{name}} - {{other_field}}' или что-то в этом направлении. Независимо от того, ответ на ваш вопрос - 'filter:'. –