我有一个可以从不同路由/模板触发的操作,但最终应该发送到应用程序控制器中的操作。我该怎么做呢?我只看到了用于向子控制器发送操作的needs
属性的示例。
那么如何将/posts/post
和/
(应用程序)发送的操作发送到应用程序控制器?
答案 0 :(得分:7)
您通常将ApplicationRoute中的操作处理程序定义为:
App.ApplicationRoute = Em.Route.extend({
actions: {
print: function() {
console.log('hello');
}
}
});
然后,如果您的操作未在您的控制器或特定路线上定义,则该操作将冒泡到任何父路线,直到ApplicationRoute。
如果您想在路线和应用程序级别处理操作,则必须在操作处理程序中返回true,以便操作可以冒出来。
App.IndexRoute = Em.Route.extend({
actions: {
print: function() {
console.log('hello');
return true;
}
}
});
查看guide以获取详细说明。