2015-12-17 7 views
8

Ich Sortieranlage eine Sammlung, die eine berechnete Eigenschaft in meinem Modell ist:sortBy in Ember Eigenschaft absteigend

collection: function() { 
    var entries = this.get('entries'); 
    return entries.sortBy('prop1', 'prop2'); 
}.property('[email protected]', '[email protected]') 

Aber ich kann nicht herausfinden, wie es zu bekommen absteigend zu sortieren. Das sollte einfach sein, oder?

Ember 1,13

+2

nennen Nun auf die Ergebnisse umkehren. entries.sortBy ('prop1', 'prop2'). reverse(); Wenn ich den Code durchschaue, denke ich, dass du alles tun kannst. https://github.com/emberjs/ember.js/blob/v2.2.0/packages/ember-runtime/lib/mixins/enumerable.js#L1044 – blessenm

+0

@blessenm Das funktionierte für mich, aber es scheint begrenzt. Vielleicht möchte ich zum Beispiel eine aufsteigend und eine absteigend. –

+0

ja es ist nur eine schnelle Lösung. Miguels Ansatz ist der richtige Weg. – blessenm

Antwort

16

können Sie Ember.computed.sort Makro verwenden: http://emberjs.com/api/classes/Ember.computed.html#method_sort

Beispiel:

entriesSorting: ['prop1:desc', 'prop2:desc'], 
collection: Ember.computed.sort('entries', 'entriesSorting') 

Unrelated, aber relevant: die Verwendung von Ember.computed über den .property Prototyp extention empfohlen.

UPDATE: ist hier ein twiddle dieser Arbeits: https://ember-twiddle.com/19ff8c56f1c13512bdc8

+0

Seltsam, ich kann das nicht bekommen, um für mich zu arbeiten. Sieht schöner aus, obwohl –

+0

@EricWilson Ich habe ein Ember Twiddle hinzugefügt, um diese Funktion zu demonstrieren. – miguelcobain

+0

Vielleicht ist das Problem, dass ich das im Modell, nicht der Controller tat? Ich werde sehen, ob ich ein Glut-Tüftelei machen kann, nie getan. –

Verwandte Themen