Angularjs UI-выберите, чтобы захватить ключ только не значение в раскрывающемся живой поиск
Я фильтрую выпадающее меню, набирая поле и фиксируя ключ в моей модели. Работает нормально! Однако проблема в том, что я печатаю, выбор не сужается. в чем проблема?
захват ключа, но не живой поиск больше!
<div class="form-group" >
<label translate="data.continent">
my continents
</label>
<ui-select ng-model="myModel.continent" ng-change="continentSelect()" theme="bootstrap">
<ui-select-match placeholder="Select in the list...">
{{$select.selected.value}}
</ui-select-match>
<ui-select-choices repeat="r.key as r in data.continent.list track by $index | filter: {'key': $select.search}">
<div ng-bind-html="r.value | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
</div>
однако, здесь сужается выбор, но модель захватывает и ключ, и значение, чего я не хочу.
живой поиск в порядке, но захватывает ключ и значение
<div class="form-group" >
<label translate="data.continent">
Continent
</label>
<ui-select ng-model="myModel.continent" ng-change="continentSelect()" theme="bootstrap">
<ui-select-match placeholder="Select in the list...">
{{$select.selected.value}}
</ui-select-match>
<ui-select-choices repeat="r in data.continent.list | filter: $select.search ">
<div ng-bind-html="r.value | highlight: $select.search"></div>
</ui-select-choices>
</ui-select>
</div>
моя структура данных выглядит так:
"list" : [
{"key" : "continent1", "value" : "Americas"},
{"key" : "continent2", "value" : "Europe"},
{"key" : "continent3", "value" : "Africa"}]
Конечная цель:
конечная цель - выполнить поиск в режиме реального времени и передать ключ, например, "continent1", ng-change="continentSelect()"
,
1 ответ
Решение
Замените ваш второй код следующим, просто добавив .key
:
<ui-select-choices repeat="r.key as r in data.continent.list | filter: $select.search">