首先,我对Ember很新,所以事情的相互作用很容易让我感到困惑。
我正在现有的Ember应用程序中工作。在应用程序routes/application.js.es6
中定义了操作。鉴于这些操作在应用程序路径中,我可以从任何地方访问它们吗?
我特意在模板/组件中使用应用程序路由的一个操作。
在组件的js文件中,我是否需要注入或导入某些内容才能使用应用程序路径中的操作?
答案 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
当您点击预期的按钮时。