路由器/模型中的Ember排序数据

时间:2013-11-23 20:03:12

标签: ember.js ember-data

当路由/facades被访问时,我想重定向到第一个门面。这通常有效,但由于服务器中的列表未排序,我的代码不会重定向到“第一”外观。我知道如何在控制器中进行排序,但是如何通过任何属性对路由器/模型进行排序?

App.FacadesRoute = Ember.Route.extend
  model: ->
    @get("store").find("facade")

  redirect: ->
    facade = @modelFor("facades").get("firstObject")
    @transitionTo("facades.show", facade)

2 个答案:

答案 0 :(得分:1)

不建议使用

重定向,建议为afterModelfindProperty非常容易根据模型中的某些属性查找集合中的模型,或者如果您不确切知道可以使用sortBy

App.FacadesRoute = Ember.Route.extend
  model: ->
    @get("store").find("facade")

  afterModel: (model, transition) ->
    facade = model.findProperty("someproperty", "value on some property");
    // or
    facade = model.sortBy("someproperty").get('firstObject');
    @transitionTo("facades.show", facade)

答案 1 :(得分:0)

好的,我找到了一种有效的方法。不确定它是否是最好的,但我认为这对其他人也有用:

App.FacadesRoute = Ember.Route.extend
  model: ->
    @get("store").find("facade")

  redirect: ->
    sortedFacades = Ember.ArrayProxy.createWithMixins Ember.SortableMixin,
      sortProperties: ["id"]
      content: @modelFor("facades")
    facade = sortedFacades.get("firstObject")
    @transitionTo("facades.show", facade)