在Ember中按不同型号的属性排序

时间:2014-06-30 19:02:23

标签: javascript sorting ember.js

我了解您可以通过执行以下操作,按升序/降序排序不同的属性:

App.TestsController = Ember.ArrayController.extend(
    sortProperties: ['testDate:desc', 'name:asc']
    sortedObjects: Ember.computed.sort('content', 'sortProperties')
)

然后在{{#each}}中引用sortedObjects。但是,如果每个测试都有一个与之关联的用户,我们是否还可以根据用户的属性进行排序?我注意到,当我按测试属性或用户属性排序时,一切正常,但是当我这样做时:

App.TestsController = Ember.ArrayController.extend(
    sortProperties: ['testDate:desc', 'user.lastName:asc']
    sortedObjects: Ember.computed.sort('content', sortProperties')
)

我的指数超出范围"错误。我是否需要使用自己的排序来适应不同模型的排序?

2 个答案:

答案 0 :(得分:0)

尝试将object属性绑定到控制器:

App.TestsController = Ember.ArrayController.extend(
    needs: ['user'],
    lastName: '',
    lastNameBinding: 'controllers.user.lastName',
    sortProperties: ['testDate:desc', 'lastName:asc']
    sortedObjects: Ember.computed.sort('content', sortProperties')
)

您也可以尝试计算属性。

答案 1 :(得分:0)

所以最终成为问题的是我如何在测试和用户之间建立连接。起初我将用户连接到setupController中的测试,这导致用户作为对控制器的承诺返回。当我将进程移动到模型钩子时,我的加载屏幕不再显示。如果有人遇到同样的问题,我会遵循Balint Erdi的article