2016-04-07 10 views
1

Ich habe diesen Winkelfilter;Angular JS Filter: Warum werden dadurch andere LIKE-Optionen entfernt?

ng-options="option.name as option.name for option in options | 
filter: newForm.select2 && {name: '!' + newForm.select2} | 
filter: newForm.select3 && {name: '!' + newForm.select3} 

Plunker here.

Grundsätzlich werden Optionen aus den ng-Optionen entfernt, wenn sie in einer der anderen Auswahlmöglichkeiten ausgewählt werden. Problem, das ich habe, ist, dass es tatsächlich Optionen entfernen wird, die wie die ausgewählte auch sind. Wenn Sie also "1" auswählen, werden sowohl "1" als auch "11" aus den anderen Optionen entfernt.

Wie kann ich dies explizit machen, damit es nur exakte Übereinstimmungen entfernt?

Danke!

EDIT: Ich habe versucht, das Hinzufügen: auf den Filter wahr, wie in den docs ohne Glück entweder ...

Antwort

1

Schalter erklärte die ids anstatt die Namen zu verwenden. Siehe zum Beispiel fork of your plnkr.

<select ng-model="newForm.select2" 
     ng-options="option.id as option.name for option in options | filter: newForm.select1 && {id: '!' + newForm.select1} | filter: newForm.select3 && {id: '!' + newForm.select3}" 
     class="form-control"> 
+0

Das ist es genau. Macht Sinn, hätte daran gedacht. Vielen Dank! – RushVan

Verwandte Themen