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