Ui-select: окно поиска не отображается для поиска, когда данные представляют собой пустой массив

#javascript #angularjs #jquery-select2 #angular-ui #ui-select

#javascript #angularjs #jquery-select2 #angular-ui #пользовательский интерфейс-выбор

Вопрос:

У меня есть ui-select, который использует обновление для извлечения данных с сервера всякий раз, когда пользователь вставляет символ в поле ввода (поле поиска). проблема в том, что поле ввода недоступно, когда данные представляют собой пустой массив, поэтому пользователь не может выполнить поиск для извлечения данных. Излишне говорить, что я хочу представлять данные только тогда, когда пользователь ищет их.

Это происходит только с темой «select2». С темой boostrap это работает.

 <ui-select id="client" name="client" ng-model="search._client" theme="select2" ng-change="loadInventories()">
<ui-select-match ng-show="$select.isEmpty()" allow-clear="true" placeholder="{{'CLIENT' | translate}}">{{$select.selected.name | translate}}</ui-select-match>
<ui-select-choices repeat="client in filtered_clients | filter: $select.search | orderBy:'name' | limitTo: 5"  refresh="load_filtred_clients($select.search)" refresh-delay="0">
 <div>{{client.name | translate}}</div>
    </ui-select-choices>
    </ui-select>
  

есть ли способ показать поле поиска, когда массив пуст?

Комментарии:

1. Я столкнулся с той же проблемой, которая является ошибкой. Репозиторий ui-select теперь заархивирован, но у вас есть выдающийся PR с исправлением этой проблемы

Ответ №1:

Похоже, тема ‘select2’ добавляет атрибут disabled HTML в ваше окно поиска, когда массив пуст.

Вы можете попробовать найти код, в котором тема ‘select2’ добавляет атрибут disable, и отредактировать его (не рекомендуется) или переопределить каким-либо образом:

element.removeAttribute("disabled");