
Originariamente inviata da
lucavizzi
Prego.
Se il plug-in ha bisogno di un array, passa "tuo_oggetto.docs"...
si
chiedevo dove definire il obj.docs, comunque cercando faticosamente in giro (la versione 4 non è ancora documentata bene) ho risolto.
Ora ho un problema più specifico, ma se utilizzi questo plugin abitualmente forse sai aiutarmi.
Il testo "no results.." stranamente mi appare solo quando la query è nulla (ho impostato minimumInputLength: 0 e la mia resource serverside restituisce docs[] vuoto se la query è nulla), ma non nell'altro caso in cui dovrebbe uscire, ossia quando inserisco una stringa random che sicuramente non è nel db. Questo il codice:
codice:
<select class="col-md-12"id="chambers" placeholder="chambers" name="chambers" multiple></select>
codice:
$("#chambers").select2({ placeholder:"deciding body",
ajax: {
url: "/api/chambers",
dataType: 'json',
delay: 250,
data: function (params) {
return {
q: params.term
}
},
processResults: function (data, params) {
console.log(data.docs);
var ret = $.map(data.docs, function (obj) {
obj.id = obj._id;
obj.text = obj.name;
return obj;
});
return {results: ret}
}
},
tags:true,
createTag: function (params) {
return false
},
templateResult: function (data) {
var $result = $("<span></span>");
$result.text(data.text);
return $result;
},
escapeMarkup: function (markup) {
return markup;
},
language: {
noResults: function() {console.log(); return "No results <a href='http://google.com'>Add new value</a>"; }
},
minimumInputLength: 0,
templateSelection: formatResultSelection
});
function formatResultSelection (repo) {
return repo.text;
}
se vuoi provare, questo è il json in caso di 3 risultati
codice:
{"docs":[{"_id":"56b7b5e31694a08c13baee9c","name":"John","__v":0},{"_id":"56b7b5e31694a08c13baee9f","name":"James","__v":0},{"_id":"56b7b5e31694a08c13baeea8","name":"Jimmy","__v":0}],"total":3,"limit":9999,"offset":0}
questo con 0 risultati
codice:
{"docs":[],"total":0,"limit":9999,"offset":0}
mi aspetterei insomma all'inserimento di "pippo" il messaggio "no results...", invece il dropdown è vuoto.