2016-07-20 5 views
2

私はAngularを初めて使っています。私はまだ可能なことを頭に入れようとしています。これは明白な答えで質問されるかもしれませんが、関連する回答は見つかりませんオンライン。Angular.jsの注文を避けるデフォルトの並べ替え

orderByに返す値を決定するswitch statementがあります。orderByは、返された値に従ってオブジェクトのリストを正しくランク付けします。しかし、私はdefault私のswitch statementケースの場合は、orderByはオブジェクトのリストの順序に何もしないようにします。

しかし、orderByには、値を与えないとリストを独自の方法で並べ替えるデフォルト機能があるようです。

私はそれが動作するように取得するためのさまざまな方法を試してみた:

default: return;返し何とorderByは、そのデフォルトの順序を使用していません。

default:break;何も返さないとorderByは、私は空の配列を引数として認識されるだろう、とこの問題を回避するだろうと思った

default: return [];return ['']を発注デフォルトを使用しますが、それはまだデフォルトの順序を使用しています。

default: return [':false'];(reverse:false)で値を渡すと、デフォルトの順序がオーバーライドされると思っていましたが、エラーが発生しました。

また、orderBy: $index track by $indexを使用するように設定しました。配列の元のインデックスで注文すると思っていました。これはうまくいかなかった。

誰もが、私はそれがリストに全く 何もしないように取得するorderByに渡すことができ、または私はデフォルトのソートを無効にすることができますどのように引数を知っています。

+1

述語を「null」に明示的に設定する必要があります。あなたが提示した他のシナリオはすべて、エラーを起こすか、デフォルトの '+'を引き起こします。 – Claies

+1

は、orderByを使用していないため、答えは - ng-repeat = "x in(wantToOrder?(array | orderBy):array)" ' – YOU

+0

@YOUは私のために働いてくれました。あなたのコメントを答えに変えたいなら、私はそれを受け入れることができます。 – AnonyMouse

答えて

1

ORDERBYをトリガしないことにより、当分の間、唯一の方法です。

など。

ng-repeat="x in (wantToOrder ? (array | orderBy) : array)"

+1

ありがとうございます。私はそれを次のように適用することになりました: 'get-data-repeat-start = – AnonyMouse

1

orderByのプロパティ値をnullに設定する必要があります。 HTML

JS

propertyName = null

または

ng-repeat="friend in friends | orderBy:null"ドキュメントは、これを直接触れていませんが、プレーンnullにプロパティ文字列を置換することにより、ソート無効例があります。

<button ng-click="propertyName = null; reverse = false">Set to unsorted</button> 
    <hr/> 
    <table class="friends"> 
    <tr> 
     <th> 
     <button ng-click="sortBy('name')">Name</button> 
     <span class="sortorder" ng-show="propertyName === 'name'" ng-class="{reverse: reverse}"></span> 
     </th> 
     <th> 
     <button ng-click="sortBy('phone')">Phone Number</button> 
     <span class="sortorder" ng-show="propertyName === 'phone'" ng-class="{reverse: reverse}"></span> 
     </th> 
     <th> 
     <button ng-click="sortBy('age')">Age</button> 
     <span class="sortorder" ng-show="propertyName === 'age'" ng-class="{reverse: reverse}"></span> 
     </th> 
    </tr> 
    <tr ng-repeat="friend in friends | orderBy:propertyName:reverse"> 
     <td>{{friend.name}}</td> 
     <td>{{friend.phone}}</td> 
     <td>{{friend.age}}</td> 
    </tr> 
    </table> 

orderBy docs

the example plunker

+0

ご協力ありがとうございます!何らかの理由でこれは私のためには機能しませんが、私のコードはこの答えの例とはまったく異なっています。 – AnonyMouse

+0

です。そのため、質問のコード例を提供することを強くお勧めします。角度バージョン – svarog

関連する問題