ember.js - 指定项目控制器时的目标路由操作而不是控制器

时间:2013-02-05 21:39:37

标签: ember.js

我正在使用像这样的itemController迭代collecion:

{{#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,那么它将被分派到路由。我能以某种方式定位路线行动吗?

1 个答案:

答案 0 :(得分:2)

假设您的控制器是Ember.Controller的一个实例,并且尚未实现它自己的doAction,则该事件应自动冒泡到路径。

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

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

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

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