Visualizzazione dei risultati da 1 a 6 su 6

Hybrid View

  1. #1
    Quote Originariamente inviata da jimbo0 Visualizza il messaggio
    volli a dare un occhio, anche se sinceramente quando non utilizzano typeahead.js sono un po' sospettoso sull'elasticità del codice, comunque thanks

    per caso dalla documentazione riesci a capire a volo come indicare la fonte json come un oggetto e non come array piano? mi spiego:
    i miei risultati non sono del tipo
    codice:
    [{value:'2',text:'pippo'},{value:'3',text:'pippa'}]
    ma sono chiusi in un oggetto

    codice:
    {
    docs:[{value:'2',text:'pippo'},{value:'3',text:'pippa'}]
    }
    Prego.

    Se il plug-in ha bisogno di un array, passa "tuo_oggetto.docs"...

  2. #2
    Utente di HTML.it
    Registrato dal
    Oct 2011
    Messaggi
    590
    Quote Originariamente inviata da lucavizzi Visualizza il messaggio
    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.
    Ultima modifica di jimbo0; 09-02-2016 a 15:41

Permessi di invio

  • Non puoi inserire discussioni
  • Non puoi inserire repliche
  • Non puoi inserire allegati
  • Non puoi modificare i tuoi messaggi
  •  
Powered by vBulletin® Version 4.2.1
Copyright © 2026 vBulletin Solutions, Inc. All rights reserved.