0

我正在使用这样的 itemController 迭代一个集合:

{{#each col itemController="colItem"}}
  <li>
    <a {{action doAction this}} href="#">{{name}}</a>
  </li>
{{/each}}

我希望 doAction 去路线而不是 itemController。

我在这样的路线中定义了 doAction:

Radium.SomeRoute = Ember.Route.extend
  events:
    doAction: (status)->

如果我删除 itemController 那么它将被分派到路由。我可以以某种方式定位路线操作吗?

4

1 回答 1

2

假设你的控制器是 Ember.Controller 的一个实例并且没有实现它自己的doAction,事件应该自动冒泡到路由。

这可能是一个 ember 错误,但当您通过帮助程序指定项目控制器时,事件似乎不会冒泡到路由器{{#each}}

作为一种解决方法,您可以改为将 itemController 指定为父控制器的属性。

App.ItemsController = Ember.ArrayController.extend({
  itemController: "Item"
});

我创建了一个 jsbin 来演示此解决方法:http: //jsbin.com/anesop/2/edit

于 2013-02-06T02:56:24.473 回答