2016-10-09 4 views
0

私は私が正常に反復処理のオブジェクトがあります。ng-optionsにフィルタを追加すると、何も設定されません。

<select ng-options="value.name for (key,value) in ctrl.userList"></select> 

私は、オブジェクトにフィルタを追加したい、といった:

|filter:value.superior!=null 

だけ優れて割り当てられた任意の現在のないユーザーを表示します。

今のところ、表示されていないようですが、1が表示されるはずです。フィルタを適用するときに何か欠けていますか?私が取り組んできました

全例:私は、反復処理しています

<select ng-options="value.name for (key,value) in ctrl.userList | filter: value.superior!=null"></select> 

サンプルは次のとおりです。

Var obj = { 
    0: {name:"test", superior:null}, 
    1: {name:"test 2", superior:0} 
}; 

サンプル角度フィドル:角度のドキュメントを1としてhttp://jsfiddle.net/p4Lj11on/

+0

は、角2ではないためタグを削除しました。 – Fallenreaper

+0

実行可能な例を教えてください。実行可能なスニペットやjFiddleのように –

+0

私はfiddleを稼働させることができるか、それを簡単にするために何かを見てみましょう。 – Fallenreaper

答えて

1

、最初の引数フィルターするには配列でなければなりません。あなたはオブジェクトを渡しています。 userListが配列の場合、正しく動作します(これを試してください)。カスタムフィルタを使用してこれを解決できます。

app.filter('myfilter', function() { 
    return function(obj, prop, value) { 
    var result = {}; 
    for(key in obj) { 
     if(obj[key][prop] !== value) 
     result[key] = obj[key]; 
    } 
    return result; 
    }; 
}); 

マークアップ:

|myfilter: 'superior' : null 
+0

だから、どうすればこの問題を解決できますか?コードを追加できますか? 'app.filter(" myFilter "、function(){});これは私の問題を解決し、私をドキュメントに向けるのではないでしょうか?私はこれを調べて、本当に私のためにこれを解決するサンプルを見つけることができません。 – Fallenreaper

+0

@just confirming:マークアップは次のようになります: '| myFilter:value' – Fallenreaper

+0

ちょうど' | myfilter' – ram1993

1

はちょうどあなたが今までにオブジェクトの配列に変更し、そして他の誰がこの問題を持つ手助けすることを決定した場合、私は助けるためにこの答えを追加しようと思いました。

http://plnkr.co/edit/cm8xoH5oVewTxce98L47?p=preview

HTML要素。

<select ng-model="test" ng-options="value.name for (key,value) in obj | filter:{superior: ''}"></select>

角度アレイ。

関連する問題