Селектор select2 не работает - PullRequest
0 голосов
/ 22 мая 2018

Я пытаюсь использовать select2 для загрузки результата запроса, который возвращает строку в формате json.Я хорошо загружаю данные в select2, но не понимаю, как селектор работает во время нажатия.

Здесь код:

$(".js-data-example-ajax").select2({
            ajax: {
                url: "{{ path("ajax_search_client") }}",
                dataType: 'json',
                delay: 250,
                data: function (params) {
                    return {
                        data: params.term, // search term
                        page: params.page
                    };
                },
                processResults: function (data, params) {
                    // parse the results into the format expected by Select2
                    // since we are using custom formatting functions we do not need to
                    // alter the remote JSON data, except to indicate that infinite
                    // scrolling can be used
                    params.page = params.page || 1;
                    obj = JSON.parse(data);
                    console.log(obj.length);

                    return {
                        results: obj,
                        pagination: {
                            more: (params.page * 30) < obj.length
                        }
                    };
                },
                cache: true
            },
            placeholder: 'Buscar un cliente',
            escapeMarkup: function (markup) { return markup; }, // let our custom formatter work
            minimumInputLength: 1,
            templateResult: formatRepo,
            templateSelection: formatRepoSelection
        });

        function formatRepo (repo) {

            if (repo.loading) {
                return repo.text;
            }

            console.log(repo);
            var client_data = repo.split('"');
            console.log(client_data);

            var item = "'"+client_data[3]+"'";

            var markup = '<div class="select2-result-repository clearfix" onClick="tradename(' + item + ')">' +
                '<div class="select2-result-repository__avatar"><img src="" /></div>' +
                '<div class="select2-result-repository__meta">' +
                '<div class="select2-result-repository__title"><strong>' + client_data[3] + '</strong></div>';

            /*if (repo.description) {
                markup += "<div class='select2-result-repository__description'>" +  + "</div>";
            }*/

            markup += '<div class="select2-result-repository__statistics">' +
                '<div class="select2-result-repository__forks"> ' + client_data[7] + '</div>' +
                '<div class="select2-result-repository__stargazers"> ' + client_data[11] + '</div>' +
                '</div>' +
                '</div></div>';

            return markup;
        }

        function formatRepoSelection (repo) {
            return repo.full_name || repo.text;
        }

содержимое данных:

["{\" tradename \ ": \" pascual \ ", \" fiscalname \ ": \" pascual sl \ ", \" nif \ ": \" 4568424 \ "},", "{\ "tradename \": \ "Jacinto \", \ "fiscalname \": \ "Jacinto sl \", \ "nif \": \ "8764564 \"}, "," {\ "tradename \": \ "Calzapeques \ ", \" fiscalname \ ": \" Calzapeques sl \ ", \" nif \ ": \" 4568753 \ "},"]

содержимое объекта:

["{" tradename ":" pascual "," fiscalname ":" pascual sl "," nif ":" 4568424 "},", "{" tradename ":" Jacinto "," fiscalname ":" Jacintosl "," nif ":" 8764564 "},", "{" tradename ":" Calzapeques "," fiscalname ":" Calzapeques sl "," nif ":" 4568753 "},"]

...