In Ember 2.0 SortableMixin
is deprecated and is on its way out too.
In the Controller
(not the ArrayController
) you may define a new computed property like SortedUsers1,2,3
below:
export default Ember.Controller.extend({
sortProps: ['lastName'],
sortedUsers1: Ember.computed.sort('model', 'sortProps'),
sortedUsers2: Ember.computed.sort('content', 'sortProps'),
sortedUsers3: Ember.computed('content', function(){
return this.get('content').sortBy('lastName');
})
});
The assumption above is that the model itself is an array of users with lastName
as one of user properties. Dependency on 'model'
and 'content'
look equivalent to me. All three computed properties above produce the same sorted list.
Note that you cannot replace 'sortProps'
argument with 'lastName'
in sortedUsers1,2
- it won't work.
To change sorting order modify sortProps
to
sortProps: ['lastName:desc']
Also if your template is in users/index folder then your controller must be there as well. The controller in users/ would not do, even if the route loading model is in users/.
In the template the usage is as expected:
<ul>
{{#each sortedUsers1 as |user|}}
<li>{{user.lastName}}</li>
{{/each}}
</ul>