Я действительно удивлен, что нет документации нигде или вопросов относительно этого более продвинутого механизма фильтрации для AngularJS - это важно для любого пользовательского интерфейса.AngularJS фильтр несколько входов выбора
Мне нужно отфильтровать опции, которые включают текущий элемент. Вопрос в том, как я могу объединить все варианты, когда мы перебираем через пункты, которые приходят к нашему фильтру и возвращают правильные результаты для каждого выбора в отфильтрованном списке.
, например, если у нас есть три области - Канада, Великобритания, США - выберите вход следует читать следующим образом:
Canada
[select]
[option0] United Kingdom
[option1] United States
United Kingdom
[select]
[option0] Canada
[option1] United States
United States
[select]
[option0] Canada
[option1] United Kingdom
.. и так далее ...
HTML:
<div ng-repeat="region in data.regions">
<h2> {{region.name}} </h2>
<input ui-select2="version2" type="hidden" name="keywordsLocal-{{$index}}" class="region-keywords input-xlarge" data-ng-model="data.regions[$index].keywords" required-multiple />
<select ui-select2 id="copy-{{$index}}" ng-show="region.length > 1" class="input-xlarge" ng-click="_copy($event, $index)" data-ng-model="data.regions[$index].keywords">
<option value="">Use the same keywords as:</option>
<option ng-repeat="region in data.regions | myFilter" value="{{region.keywords}}">{{region.name}}</option>
</select>
</div>
Javascript:
app.filter('myFilter', function() {
return function(items) {
var group = [];
for (var i = 0; i < items.length; i++) {
group.push(items.name);
}
for (var i = 0; i < group.length; i++) {
group[i].splice(i, 1);
}
return group;
};
});
Спасибо за ваш ответ! Я действительно не думаю, что есть возможный способ достичь этого? по крайней мере, не имея надлежащего знания службы $ filter, проблема в том, что я использую ui-select2, который не поддерживает ng-options, fml! – iamwhitebox
Еще раз спасибо за обновление - очень круто – iamwhitebox