当路由/facades
被访问时,我想重定向到第一个门面。这通常有效,但由于服务器中的列表未排序,我的代码不会重定向到“第一”外观。我知道如何在控制器中进行排序,但是如何通过任何属性对路由器/模型进行排序?
App.FacadesRoute = Ember.Route.extend
model: ->
@get("store").find("facade")
redirect: ->
facade = @modelFor("facades").get("firstObject")
@transitionTo("facades.show", facade)
答案 0 :(得分:1)
重定向,建议为afterModel
,findProperty
非常容易根据模型中的某些属性查找集合中的模型,或者如果您不确切知道可以使用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)