如何排序Ember数据模型输出?

时间:2015-08-03 23:08:49

标签: ember.js

我进行了搜索和搜索,但所有示例都显得过时,不在Ember CLI强制执行的文件结构中等。

无论如何,说我在app / models / employee.js中有一个模型:

export default DS.Model.extend({ firstname: DS.attr('string'), lastname: DS.attr('string'), });

app / routes / employees.js中的路线:

export default Ember.Route.extend({ model: function() { return this.store.findAll('employee'); }, });

app / routes / employees.hbs中的模板:

{{#each model as |employee|}} <tr><td>{{employee.firstname}}</td><td>{{employee.lastname}}</td></tr> {{/each}}

我需要添加什么才能按名字排序该表,例如?
我收集我应该使用Ember.computed.sort(),类似于:

sortedEmployee: Ember.computed.sort('employees', ['firstname'])

然后在模板中执行{{#each sortedEmployee as ...}},但我显然没有在正确的位置定义sortedEmployee。

2 个答案:

答案 0 :(得分:3)

应用程序/控制器/ employees.js

tintColor

应用程序/路由/ employees.hbs:

export default Ember.Controller.extend({
  sortProperties: ['firstname:asc'],
  sortedEmployees: Ember.computed.sort('employees', 'sortProperties')
});

JSbin中的示例:http://emberjs.jsbin.com/regowa/7/edit?html,css,js,output

答案 1 :(得分:2)

您走在正确的轨道上,请尝试以下方法:

<table class="table table-hover">
                    <tr>
                        <th>#</th>
                        <th>Nome</th>
                        <th>Email</th>
                        <th>Administrador</th>
                        <th>Login</th>
                        <th>Remover</th>
                    </tr>
                    <tr ng-repeat="usuario in usuarios | filter: global.search">
                        <td>{{$index+1}}</td>
                        <td><a ng-href="#/edita/usuario/{{usuario._id}}">{{usuario.nome}}</a></td>
                        <td>{{usuario.email}}</td>
                        <td>{{usuario.administrador}}</td>
                        <td>{{usuario.login}}</td>
                        <td><button ng-click="removeUser(usuario)" class="btn-link"><i style="float: right;" class="icon-remove"></i></button></td>
                    </tr>
                </table>

我认为必须在组件/控制器上定义一个额外的属性是很奇怪的,但这种方式有效。