Ember.js - 如何使用Ember.Router实现所选项目?

时间:2012-09-05 15:32:07

标签: javascript ember.js

我想知道当用户点击/选择其中一个项目时,处理项目列表和显示项目详细信息的最佳方法是什么。这方面的一个示例是在左侧边栏中显示电子邮件列表,并在用户单击其中一条消息时显示主要内容区域中的消息详细信息。

how to mark active menu item using router infrastructure上使用@ pangrantz的精彩答案我能够提出一个有效的例子:jsFiddle

但是有一些事情看起来不太正确:

首先,在路由器#connectOutlets状态的show中,我在控制器上设置所选消息,并将插座与同一对象连接。我想我可以做其中一个。

connectOutlets: function(router, context) {
    router.set('messagesController.selected', context);
    router.get('applicationController').connectOutlet('message-details', 'messageDetails', context);
}

其次,我正在从indexshow状态转换到相同的状态。我甚至不确定我是否想要过渡到一个新的州 - 我只是想把它连接起来。

showDetails: Ember.Route.transitionTo('show')

我可以更改任何内容以使此代码更具惯用语吗?谢谢!

1 个答案:

答案 0 :(得分:0)

这段代码看起来非常惯用于我的眼睛。你是对的,你不需要设置所选的消息。当您连接插座以获取消息详细信息时,它会将所选消息设置为消息详细信息控制器上的内容。

您应该IMO从索引转换为show状态,因为这是一个很好的RESTful练习,并且还允许用户为单个消息添加书签。我会将索引状态的URL设为'/ messages'而不是'/'。