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

时间:2014-05-21 13:23:04

标签: ember.js

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

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

1 个答案:

答案 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以获取详细说明。