【发布时间】:2014-01-08 06:32:39
【问题描述】:
现在,这确实是一个从this 演变而来的问题。那里有更多信息,但我想,最好直接问一个具体问题。就这样吧:
我们通常像这样在控制器中定义动作:
var FooController = Ember.Controller.extend({
actions: {
login: function() {
}
}
});
有没有办法定义一个捕获所有动作处理程序,像这样(假设):
actions: {
login: function() {
},
*: function(actionName, paramArray) {
}
}
这类似于我认为已经实现的 embers catch all route,尽管我还没有尝试过。
我需要这个,因为我的 Ember.Component 使用 {{partial}} 帮助器呈现用户提供的 partial template。这部分可能在其中指定了{{action}}。这些操作不会冒泡到调用控制器或路由,并且会在组件内丢失。这个事实在第 4 段的docs 中有所提及。
如果可以捕获所有操作,我的组件可以实现它并将操作发送回调用方,使用如下所示:
actions: {
*: function(actionName, paramArray) {
this.sendAction(actionName, paramArray)
}
}
【问题讨论】:
标签: ember.js