Ember.js泡泡事件同名

时间:2014-12-01 03:08:24

标签: ember.js

我想将一个具有相同名称的事件从控制器冒泡到应用程序:路由并传递参数。

这不起作用:

blog.hbs

<button {{action "createList"}}>Create List</button>

blog_controller.js

actions: {
  createList: function() {
    this.send('createList', 'value1', 'value2');
  }
}

application_route.js

actions: {
  createList: function(param1, param2) {
    console.log('I want to be caught here!!');
  }
}

目前,只有当我为application_route和blog_controller中的操作选择不同的名称(例如(blogController:createItapplicationRoute:createList)时,此行为才有效,即使冒泡顺序正确。

如何才能使用相同的方法名称?

1 个答案:

答案 0 :(得分:4)

如果你想让一个动作继续处理器链而不改变params ,你可以简单地从动作处理程序返回true。

但是,在您的情况下,您希望使用一组新的参数调用该操作。在这种情况下,您应该将操作发送到控制器target。 e.g。

blog_controller.js

actions: {
  createList: function() {
    this.get('target').send('createList', 'value1', 'value2');
  }
}