可排序功能由Ember.SortableMixin提供。这个 mixin 暴露了两个属性:sortAscending
和sortProperties
.
例如:
控制器
App.IndexController = Ember.Controller.extend(Ember.SortableMixin, {
sortAscending: false,
sortProperties: ['id'],
});
可以更改这些属性并更新顺序,这是一个动态排序的示例:
控制器
App.IndexController = Ember.Controller.extend(Ember.SortableMixin, {
sortProperties: ['firstName'], // or whatever property you want to initially sort the data by
sortAscending: false, // defaults to "true"
actions: {
sortBy: function(property) {
this.set('sortProperties', [property]);
}
}
});
要访问排列的内容,您应该arrangedContent
在模板中引用而不是常规model
属性。像这样:
模板
<script type="text/x-handlebars" data-template-name="index">
<h2>Index Content:</h2>
<table>
<thead>
<th {{action "sortBy" "id"}}>ID</th>
<th {{action "sortBy" "firstName"}}>First Name</th>
<th {{action "sortBy" "lastName"}}>Last Name</th>
</thead>
<tbody>
{{#each arrangedContent as |prop|}}
<tr>
<td>{{prop.id}}</td>
<td>{{prop.firstName}}</td>
<td>{{prop.lastName}}</td>
</tr>
{{/each}}
</tbody>
</table>
</script>
你可以在这里看到这个工作http://emberjs.jsbin.com/gunagoceyu/1/edit?html,js,output
我希望它有帮助