Ember.js-发送到第一项的更好方式

Ember.js-发送到第一项的更好方式,ember.js,Ember.js,我有一个ArrayController,我想在第一次访问视图时显示第一项的内容,现在我这样做: App.SomeController = Em.ArrayController.extend content: Ember.A() active: null contentDidLoad: ( -> return unless @get('content.isLoaded') || @get('content.length') == 0 || @get('active')

我有一个ArrayController,我想在第一次访问视图时显示第一项的内容,现在我这样做:

App.SomeController = Em.ArrayController.extend
  content: Ember.A()
  active: null

  contentDidLoad: ( ->
    return unless @get('content.isLoaded') || @get('content.length') == 0 || @get('active')

    @set('active', @get('firstObject'))
    App.get('router').transitionTo('root.inbox.email', @get('active'))
  ).observes('content.isLoaded')
<div {{action showEmail view.content href="true"}}>
我不喜欢像这样从控制器给路由器打电话

内容的显示方式通常是通过单击动作辅助对象来实现的,如下所示:

App.SomeController = Em.ArrayController.extend
  content: Ember.A()
  active: null

  contentDidLoad: ( ->
    return unless @get('content.isLoaded') || @get('content.length') == 0 || @get('active')

    @set('active', @get('firstObject'))
    App.get('router').transitionTo('root.inbox.email', @get('active'))
  ).observes('content.isLoaded')
<div {{action showEmail view.content href="true"}}>
但显然,当页面首次加载时,不会发生单击


有更好的方法吗?

你能展示更多的代码吗?我猜你有某种索引路由,你应该在那里设置你的控制器。您使用的是哪个版本的余烬?在最近的版本中有一些重大变化。Yahuda回答了我的问题,这似乎很相似: