2016-05-03 7 views
0

In meiner AngularJS Anwendung Ich verwende Multi-Dropdown https://tamtakoe.github.io/oi.select/#/select/#filtered, mit den folgenden:Filterung Multi wählen Drop-Down-Optionen

<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 > 

und

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

, die für alle Optionen fein arbeitet in $scope.ins_Types. Jetzt möchte ich die Option mit id < 3 nur angezeigt werden. So habe ich den Filter-Optionen verwendet, wie unten dargestellt:

<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 > 

Aber seitdem die Multi wählen Dropdown nicht mehr reagiert und keine der Optionen angezeigt bekommen.

Ich versuchte sogar | filter:{item.id < 5} aber immer noch das gleiche Problem.

Antwort

1

Sie können einen benutzerdefinierten Filter für Ihre Anforderung wie

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

Und in Ihrem Markup es wie

<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> 

Live-Plunker

Hoffe, es hilft verwenden erstellen.