4

如果这是一个菜鸟问题,我很抱歉,我是 Ember.js 的新手,并试图弄清楚一些事情。在 Ember.js 中,假设我在数组控制器中有一个对象列表并为每个特定对象呈现一个视图,如果用户单击属于特定对象的 DOM 元素,我如何确定单击了哪个对象的元素?

例子

ul#mainChat
  {{#each chat in App.chatController}}
  {{#view App.MainChatView tagName="li"}}
  li | Example
  {{/view}}
  {{/each}}

如果我在聊天控制器数组中有 5 个对象并生成了 5 个 li,用户单击一个,我如何确定属于哪个对象。

谢谢!

4

1 回答 1

5

您必须为该元素包含一个操作并将该操作传递给一个上下文,您可以通过目标中的操作的 event.context 访问该上下文。

例如。

{{#each item in items}}
  <li {{action viewItem item target="view"}}>{{name}}</li>
{{/each}}

然后在您的视图中(或您将操作目标设置为的任何位置,这取决于您在做什么)您将拥有:

viewItem: function(event) {
  var item;
  item = event.context;
  //do what you want with the item 
}
于 2012-12-12T05:10:45.510 回答