2013-10-31 2 views
2

Я создал коробку Autocomplete Typeahead и связываю ее вместе с tagmanager.js. Все работает, за исключением того, что выбранный тег является одним из предоставленных вариантов из списка предложений типа.Получить Dataset, возвращенный Remote в Twitter Typeahead.js

self.tagApi = $("#itemTag").tagsManager({ 
    onlyTagList: true, //This option is unimplemented in TagsManager 3.0 
    maxTags: 1 
}); 

self.tAhead = $("#itemTag").typeahead({ 
    name: 'items', 
    limit: 15, 
    remote: { 
    url: '/api/get_items_for_typeahead/%QUERY' 
    } 
}).on('typeahead:selected', function(e, data, data_set_name) { 

    //I want to check that it is a valid suggestion here 

    $("#itemTag").tagsManager("pushTag", data.value); 

}); 

Кто-нибудь знает, как получить возвращенный набор данных?

ответ

2

Добавить filter в ваш remote. В нем просто сохраните данные, а затем используйте их позже в обработчике событий selected. Пример:

$itemTag = $('#itemTag'); 

self.tagApi = $itemTag.tagsManager({ 
    onlyTagList: true, // This option is unimplemented in TagsManager 3.0 
    maxTags: 1, 
}); 

var lastTypeaheadResponse = null; 

self.tAhead = $itemTag.typeahead({ 
    name: 'items', 
    limit: 15, 
    remote: { 
     url: '/api/get_items_for_typeahead/%QUERY', 
     filter: function (response) { 
      lastTypeaheadResponse = response; 
      return response; 
     }, 
    }, 
}).on('typeahead:selected', function (e, data, dataSetName) { 
    // iterate over lastTypeaheadResponse and check what you want to check 
    $itemTag.tagsManager('pushTag', data.value); 
}); 
Смежные вопросы