Używam Bootstrap z nagłówkiem z funkcją ajax i chcę wiedzieć, jaki jest prawidłowy format wyniku Jsona, aby zwrócić ID i opis. Potrzebuję identyfikatora do powiązania wybranego elementu z modelem mvc3.Bootstrap typeahead ajax result format - Przykład
Jest to kod:
[Html]
<input id="myTypeahead" class='ajax-typeahead' type="text" data-link="myUrl" data-provide="typeahead" />
[Javascript]
$('#myTypeahead').typeahead({
source: function (query, process) {
return $.ajax({
url: $('#myTypeahead').data('link'),
type: 'post',
data: { query: query },
dataType: 'json',
success: function (jsonResult) {
return typeof jsonResult == 'undefined' ? false : process(jsonResult);
}
});
}
});
This works properly when I return a simple list of strings, for example:
{item1, item2, item3}
But I want to return a list with Id, for example:
{
{Id: 1, value: item1},
{Id: 2, value: item2},
{Id: 3, value: item3}
}
Jak przetworzyć ten wynik w Ajax "success: function()"?
To bardzo proste z jquery Autocomplete, ponieważ mogę zwrócić listę obiektów Json.
[jquery Autocomplete process data example]
...
success: function (data) {
response($.map(data, function (item) {
return { label: item.Id, value: item.Value, id: item.Id, data: item };
})
...
Ale to nie działa z boostrap Typeahead.
Czy ktoś może mi pomóc?
Dzięki.
Czy próbowałeś przekonwertować zwracane wartości jako 'Tablica' zamiast? 'var list = [{Id: 1, value: item1}, {Id: 2, value: item2}, {Id: 3, value: item3}];' –
tak, nie mam z tym problemu. Mój problem polega na powiązaniu identyfikatora z formantem html. Funkcja procesu (danych) akceptuje tylko tablicę ciągów, a nie tablicę obiektów. – Gonzalo
Czy używasz najnowszej wersji aplikacji TypeAhead? –