我想将一个具有相同名称的事件从控制器冒泡到应用程序:路由并传递参数。
这不起作用:
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:createIt
和applicationRoute:createList
)时,此行为才有效,即使冒泡顺序正确。
如何才能使用相同的方法名称?
答案 0 :(得分:4)
如果你想让一个动作继续处理器链而不改变params ,你可以简单地从动作处理程序返回true。
但是,在您的情况下,您希望使用一组新的参数调用该操作。在这种情况下,您应该将操作发送到控制器target
。 e.g。
blog_controller.js
actions: {
createList: function() {
this.get('target').send('createList', 'value1', 'value2');
}
}