我想知道是否可以将函数作为Ember组件的参数传递
// component.hbs
{{component fun=fun}}
然后,从组件中的一个动作调用同一个函数:
// component.js
actions: {
fun2() {
let fun = this.get('fun');
fun();
}
}
答案 0 :(得分:4)
查看以下twiddle。你问的是有效的和有效的。但通常,您可以将函数传递给具有<div class="parent"></div>
<div class="parent">
<div class="child">
test
</div>
</div>
帮助器的组件,并在action
定义中定义您的操作。我可以说这是将函数传递给组件并从组件中触发操作(调用函数)的常用方法。
actions
import Ember from 'ember';
export default Ember.Component.extend({
actions: {
buttonClicked() {
let foo = this.get('foo');
foo();
}
}
});
import Ember from 'ember';
export default Ember.Controller.extend({
appName: 'Ember Twiddle',
foo() {
alert('hi there');
}
});
<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
{{my-component foo=foo}}
<br>
<br>