У меня есть раскрывающийся список с возможностью поиска со многими значениями. Я использую ui-select для фильтрации значений при вводе пользователем. Я не хочу показывать одновременно более 30 значений. Однако я хочу проинформировать пользователя о том, что доступно больше данных, если пользователь продолжит писать / фильтровать. Как бы вы это решили?
Моя идея заключалась в том, чтобы как-то добавить в список лишний отключенный элемент, который читается примерно как 'More results...', если их больше 30. Есть ли способ предоставить ui-select постоянный выбор, который он не фильтрует?
Если прокрутить раскрывающийся список, станет ясно, что есть еще данные, но они не отображаются.
<ui-select ng-model = "vm.selectedOption" close-on-select = "true" on-select = "vm.optionSelected($item)" spinner-enabled = "true">
<ui-select-match placeholder = "{{'Select option'}}">
<span ng-bind = "$select.selected.name"></span>
</ui-select-match>
<ui-select-choices
repeat = "option in vm.options"
refresh = "vm.loadOptions($select.search)"
refresh-delay = "200"
ui-disable-choice = "option.isConstantChoice=== true"
>
<div ng-bind-html = "option.name | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>


Либо добавьте дополнительный элемент в массив, который вы используете для генерации, либо даже лучшее решение - отделить реальные данные от пользовательского интерфейса и добавить этот элемент с чем-то вроде:
var html='<div ng-if = "' + expressionForShowingelement + '">Value</div>',
el = document.getElementById('targetelementId');
angular.element(el).append( $compile(html)($scope) )
И тогда исходный источник остается прежним, а пользовательский интерфейс отделяется от данных / логики. Будьте осторожны, не смешивайте одинарные и двойные кавычки и не нарушайте HTML.
Не забудьте установить тот id, на который вы нацеливаетесь, с помощью append() позже и отключите элемент для выбора.
Кроме того, имейте в виду, что если вы отвечаете на событие вне AngularJS, вам необходимо вызвать $apply.
Я понимаю вашу идею, но как бы вы добавили ее к элементу
ui-select-choices? Когда я это сделаю, это все еще фильтруется.