2

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

使用@pangrantz关于如何使用路由器基础设施标记活动菜单项的绝佳答案,我能够想出一个工作示例:jsFiddle

但是有几件事似乎不太正确:

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

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

其次,我正在从index和状态转换到相同的show状态。我什至不确定我是否要过渡到一个新的状态——我只是想连接插座。

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

有什么我可以改变的,让这段代码更惯用吗?谢谢!

4

1 回答 1

0

这段代码在我看来非常地道。你是对的,你不需要设置选中的消息。当您连接消息详细信息的出口时,它会将所选消息设置为消息详细信息控制器上的内容。

您应该将 IMO 从索引状态转换为显示状态,因为这是良好的 RESTful 实践,并且还允许用户为单个消息添加书签。我会将索引状态的 URL 设为“/messages”而不是“/”。

于 2012-09-06T16:10:20.603 回答