2013-05-13 2 views
0

В настоящее время я вижу, что в Typeahead, когда нет результата запроса, он не покажет ни одного раскрывающегося списка, ни какого-либо сообщения, позволяющего пользователю узнать, что запрос не получил никакого результата.Как добавить сообщение «default highlighter» в typeahead?

Есть ли способ получить только один результат, который говорит что-то вроде «нет результата» в раскрывающемся списке, когда запрос ничего не возвращает?

Лучшее решение, о котором я могу думать, заключается в том, чтобы добавить объект «без результата» в список результатов и просто использовать сопряжение для обработки дела. Но почему-то я чувствую, что это плохо.

Любые другие предложения?

ответ

2

Решение, которое я использую в настоящее время, является следующим.

В основном я нажимаю пустой объект в список элементов, но не на карту объектов. это заставит сортировщика поверить, что в массиве есть хотя бы один элемент. поэтому в ярлыке, когда вы пытаетесь получить объект с карты, объект будет неопределенным.

// sort our results 
sorter: function(items) { 
    if (items.length == 0) { 
     items.push(new Object()); 
    } 
     return items;  
    }, 

highlighter: function(item) { 
    comp = map[item]; 
    if (typeof comp == 'undefined') { 
     return "<span>No Match Found.</span>"; 
    } 

Обратите внимание, что я работаю с массивом списка объектов, а не массивом строк по умолчанию.

хороший учебник по этому здесь: http://tatiyants.com/how-to-use-json-objects-with-twitter-bootstrap-typeahead/

не 100% уверен, что это хорошая практика, но она получает работу.

Смежные вопросы