在模板组件中使用应用程序的路径操作

时间:2016-06-03 20:16:43

标签: ember.js

首先,我对Ember很新,所以事情的相互作用很容易让我感到困惑。

我正在现有的Ember应用程序中工作。在应用程序routes/application.js.es6中定义了操作。鉴于这些操作在应用程序路径中,我可以从任何地方访问它们吗?

我特意在模板/组件中使用应用程序路由的一个操作。

在组件的js文件中,我是否需要注入或导入某些内容才能使用应用程序路径中的操作?

1 个答案:

答案 0 :(得分:1)

This demo perfectly demonstrates the thing you try to achieve.

首先,在应用程序路径中定义操作:

import Ember from 'ember';

export default Ember.Route.extend({
  actions: {
    myActionFromApp() {
        console.log('myAction from application fired');
    }
  }
});

然后在模板传递操作名称到组件:

{{my-component myAction='myActionFromApp'}}

然后,您可以从组件中调用ApplicationRoute操作:

import Ember from 'ember';

export default Ember.Component.extend({
  actions: {
    myAction() {
        this.sendAction('myAction');
    }
  }
});

在演示中,当有人点击按钮时,我会这样做:

<button {{action 'myAction'}}>Fire action myAction</button>

控制台的结果是:

  

来自应用程序的myAction

当您点击预期的按钮时。