ui-selct onchange варианты загрузки с сервера (обновлено с select2) - PullRequest
0 голосов
/ 20 апреля 2019

Я недавно перешел с select2 на ui-select.Ниже я покажу, как это работает, используя select2.

Контекст: у меня есть данные клиентов, которые необходимо отфильтровать с помощью ui-select.

Поскольку данные клиентов велики и могут быть больше 100000, я не могу их загрузитьзатем отфильтруйте с помощью ui-select.Мне нужно сделать запрос к событию onchange сервера (событие изменения ввода с задержкой) и ограничить результаты до 10.

Select2 Html:

<div
     st-input-event="change"
     st-search="_company_owner"
     style="width: 100%"
     ui-select2="ClientSelect2Options(true)"
     ng-model="company"
     name="company"
     class="text"
     class="form-control "
     placeholder="{{'SEARCH_BY_COMPANY' | translate}}"></div>
</td>

Select2 javascript:

$scope.ClientSelect2Options = function (allowClear) {
    return {
        allowClear: allowClear,
        id: function (e) { return e },
        ajax: {
            transport: function (params) {
                params.beforeSend = function (request) { request.setRequestHeader("Authorization", 'Bearer ' + $window.sessionStorage.token); };
                return $.ajax(params);
            },
            url: $rootScope.config.API_URI + '/company/query?limit=' + 10 + '&page=' + 1,
            dataType: "json",
            type: "POST",
            quietMillis: 500,
            data: function (term) {
                return { query: { name: { "$regex": term, "$options": "i" } } }; },
            results: function (data) {
                return { results: data.result }; }
        },
        initSelection: function (element, callback) {
            var id = $(element).select2('val');
            if (id && id.length > 0) {
                return companySrv.getCompanyById(id, function (res) {
                    if (res && res.success) {
                        callback(res.result);
                    } else { callback(null); }
                }, function () { callback(null); })
            }
        }
    }
};

Можно ли выполнить запрос с сервера с помощью ui-select и как?

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...