Я пытаюсь отфильтровать список доступных параметров в раскрывающемся списке bs-select, используя директиву ng-options в соответствии со спецификациями AngularStrap. Я просто использую их пример вот так.
HTML:
<button type="button" class="btn btn-default btn-sm" ng-model="selectedIcon"
data-html="1"
data-multiple="1"
ng-options="icon.value as icon.label for icon in icons | filter:iconSearch"
bs-select>
Action <span class="caret"></span>
</button>
<input type="text" class="form-control input-sm" ng-model="iconSearch" />
Контроллер (index.js):
$scope.selectedIcons = [];
$scope.icons = [
{"value":"Gear","label":"<i class=\"fa fa-gear\"></i> Gear"},
{"value":"Globe","label":"<i class=\"fa fa-globe\"></i> Globe"},
{"value":"Heart","label":"<i class=\"fa fa-heart\"></i> Heart"},
{"value":"Camera","label":"<i class=\"fa fa-camera\"></i> Camera"}
];
Проблема Когда я начинаю вводить текст в поле ввода (т. е. iconSearch начинает меняться), список доступных параметров в раскрывающемся списке AngularStrap не меняется. Если я «жестко запрограммирую» фильтр в ng-options для чтения ... | filter: 'Gear'
, он будет отлично работать при загрузке страницы.
Если я добавлю следующий код в представление, я увижу, что массив значков отфильтрован правильно.
<pre>{{icons | filter:iconSearch | json}}</pre>
Вопрос
- Можно ли вообще динамически фильтровать массив параметров и соответствующим образом реагировать на bs-select?
- Если да, то как? Если нет, то как это можно изменить, чтобы оно работало?