按字母顺序重定向到 Ember 数组中的第一项?

Redirecting to the first item in an Ember array, alphabetically?

我有一组页面,我正在按标题排序,如下所示:

PagesController = Ember.ArrayController.extend
  sortProperties: ['title']

我还尝试在用户点击 pages.index 路由时重定向到数组中的第一项。

PagesIndexRoute = Ember.Route.extend
  redirect: (model) ->
    page = model.get 'firstObject'
    @transitionTo 'page', page if page?

问题是,firstObject 不是已排序数组中的第一项,因此用户会掉到列表中间的某个位置。在模板中,我可以循环遍历 arrangedContent 属性 以获得排序后的数组。但是,在路由中,我无法访问那个 属性 或排序数组。

如何重定向到数组中的第一个 object, 数组按字母顺序排序后?

您应该能够通过方法 @controllerFor('pages')PagesIndexRouteredirect 操作中访问 PagesController。然后您可以访问其排序的内容。请尝试以下代码:

PagesIndexRoute = Ember.Route.extend
  redirect: ->
    page = @controllerFor('pages').get 'firstObject'
    @transitionTo 'page', page if page?