2017-02-13 7 views
0

私は他のフィールドで選択されているオプションを削除する一連の3つの選択肢を持っています。この角度フィルタはなぜLIKE IDに適用されますか?

Plunker

<label>Choice 1</label> 
<select ng-model="food.fruitOne" 
     ng-options="fruit.id as fruit.name for fruit in fruits | filter:food.fruitTwo!=''?{id: '!' + food.fruitTwo}:{} | filter:food.fruitThree!=''? {id: '!' + food.fruitThree}:{}"> 
    <option value=""></option> 
</select> 
<label>Choice 2</label> 
<select ng-model="food.fruitTwo" 
     ng-options="fruit.id as fruit.name for fruit in fruits | filter: food.fruitOne!=''?{id: '!' + food.fruitOne}:{} | filter: food.fruitThree!=''?{id: '!' + food.fruitThree}:{}"> 
    <option value=""></option> 
</select> 
<label>Choice 3</label> 
<select ng-model="food.fruitThree" 
     ng-options="fruit.id as fruit.name for fruit in fruits | filter: food.fruitOne!=''?{id: '!' + food.fruitOne}:{} | filter: food.fruitTwo!=''?{id: '!' + food.fruitTwo}:{}"> 
    <option value=""></option> 
</select> 

この問題を除いて素晴らしい作品。

idsのようにフィルタリングされているようです。したがって、1が選択された場合、1x idの項目も後続の選択項目からフィルタリングされます。他の同様のIDと同じ - 2 & 2倍。

明らかに私は十分に明確ではありません。何が欠けている?

ありがとうございます!

+2

https://plnkr.co/edit/gzuhYYX2P1Wd0OtfLgOU?p=preview – maurycy

+0

ありがとう@Maurycy、willそれを渦巻く。 – RushVan

+0

それは感謝の仲間でした! – RushVan

答えて

1

あなたが働いてplunkerに3異なるケース

$scope.filterFruitsA = function(val) { 
    return val.id !== val.id !== $scope.food.fruitTwo && val.id !== $scope.food.fruitThree 
    } 
    $scope.filterFruitsB = function(val) { 
    return val.id !== $scope.food.fruitOne && val.id !== $scope.food.fruitThree 
    } 
    $scope.filterFruitsC = function(val) { 
    return val.id !== $scope.food.fruitOne && val.id !== $scope.food.fruitTwo 
    } 

リンクを処理する必要があるため、あなたの場合に有用であり得る機能を受け入れることができ、フィルタhttps://plnkr.co/edit/gzuhYYX2P1Wd0OtfLgOU?p=preview

私はそれがで行うことができると確信しています私は何も考えることができません。明日はこの質問に再挑戦します。

関連する問題