在Ember中对模型进行排序

时间:2014-04-22 01:12:31

标签: ember.js ember-data

我们假设你加载了一个从项目页面开始的项目,比如/item/25。这将加载第1项。然后您转换到/items路线,这将加载所有项目,但会发生的是第25项将首先列出,然后是所有项目1,依此类推。< / p>

如何对模型进行排序,使它们始终显示相同的颜色?

我已尝试this.store.find('item').sortBy('id'),但它无法正常工作。

2 个答案:

答案 0 :(得分:2)

空数组上的

sortBy可能会返回一个空数组。在使用find

之前,您需要等待sortBy解决
return this.store.find('item').then(function(items){
  return items.sortBy('id');
});

当然,您需要注意按id排序,它是一个字符串,“100”在“2”之前。您可能需要在item模型上定义一个计算属性,将其强制转换回int以进行排序。

答案 1 :(得分:1)

您可以使用&#39; ArrayController&#39;对于/ items路线。 http://emberjs.com/guides/controllers/representing-multiple-models-with-arraycontroller/

对于你的情况,它会是这样的。

App.ItemsController = Ember.ArrayController.extend({
    sortProperties:['id']
})