2016-04-22 28 views
3

私はAngular JSとGoogle Places APIを使用してWebアプリケーションを作成しています。AngularJS:OrderBy降順(nullエントリ)

私は現在、(ORDERBY: ' - 評価')を降順 "評価" によって注文されているngのリピートを持っています。そこで、Google Places API JSONファイルのx個の場所が、評価に基づいて降順で表示されます。

ただし、評価のないアイテム/場所はヌルとして分類され、これらのエントリはng-repeatフィードの上部に表示されます。これらは評価のないフィードの一番下に移動する必要がありますか?

だから私はそれを見て、これをたい方法の例は次のとおりです。

<ng-repeat orderBy:'-rating'> 
    <place rating="5"/> 
    <place rating="4.2"/> 
    <place rating="2.8"/> 
    <place rating="null"/> 
    <place rating="null"/> 
</ng-repeat> 

このついて行くの最良の方法は何ですか?

+0

この答えをチェックしてくださいhttp://stackoverflow.com/questions/18604374/angularjs-orderby-with-empty-field/30028814 – DrinkBird

答えて

3

nullまたはundefinedの値で並べ替える場合は、orderByフィルタを使用します。 []表記orderBy:[ '!rating', '-rating', ]を使用してください。

これは、下部にnullまたはundefinedという値を表示します。

のような:

<li ng-repeat="option in options | orderBy:[ '!rating', '-rating', ]">{{option.name}}</li> 
+0

おかげで、これは御馳走を働きました。 orderByフィルターで配列を使用できることに気付かなかった。私はカスタムフィルターを書く時間を無駄にする必要はなかったのでうれしいです。 –

+0

これはスコープ付き変数にページロードを設定しています。しかし、それは私の選択したボックスで動作していないようです。 ビュー: コントローラ: vm.order = ['!rating'、 ' - rating']; –

+0

答えを更新することで、何がもっと必要なのか明確にできますか? –