2016-05-03 3 views
0

В моем angularjs приложения, я использую множественный выбор выпадающий https://tamtakoe.github.io/oi.select/#/select/#filtered, со следующим:фильтрация мульти выбора параметров выпадающих

<oi-multiselect ng-options="item.name for item in ins_Types " ng-model="insuranceTypes" multiple placeholder="Select" data-ng-required="true" name="insType" ></oi-multiselect > 

и

$scope.ins_Types = [{id: 1, name : "ins1"},{id: 2, name : "ins2"}, {id: 3, name : "ins3"}, {id: 4, name : "ins4"}]; 

, который работает отлично подходит для всех вариантов в $scope.ins_Types. Теперь я хочу, чтобы опция отображалась только id < 3. Таким образом, я использовал фильтр для опций, как показано ниже:

<oi-multiselect ng-options="item.name for item in ins_Types | filter:{id < 3} " ng-model="insuranceTypes" multiple placeholder="Select" data-ng-required="true" name="insType" ></oi-multiselect > 

Но с тех пор множественного выбора выпадающий перестал отвечать и не становятся отображается ни один из вариантов.

Я даже пробовал | filter:{item.id < 5}, но все та же проблема.

ответ

1

Вы можете создать собственный фильтр для вашего требования, как

app.filter('myfilter', function() { 
    return function(input, condition) { 
    var filtered = []; 
    input.forEach(function(item, index) { 
     if (item.id > condition) { 
     filtered.push(item); 
     } 
    }); 
    return filtered; 
    }; 
}); 

И в вашей разметки использовать его как

<oi-select oi-options="item.name for item in ins_Types | myfilter : 3 track by item.id" ng-model="insuranceTypes" multiple placeholder="Select"></oi-select> 

Живая Plunker

Надеется, что это помогает.