如何向父控制器发送动作?

Haz*_*_ah 6 ember.js

我有一个可以从不同路由/模板触发的操作,但最终应该发送到应用程序控制器中的操作.我该怎么做呢?我只看到了needs用于向子控制器发送操作的属性的示例.

那么如何将(/posts/post/应用程序)发送的动作发送到应用程序控制器?

ppc*_*ano 7

您通常将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)

查看指南以获取详细说明.