是否可以将函数传递给Ember.js组件以将其作为动作回调执行?

时间:2017-05-17 23:08:57

标签: javascript ember.js

我想知道是否可以将函数作为Ember组件的参数传递

// component.hbs
{{component fun=fun}}

然后,从组件中的一个动作调用同一个函数:

// component.js
actions: {
  fun2() {
     let fun = this.get('fun');
     fun();
  }
}

1 个答案:

答案 0 :(得分:4)

查看以下twiddle。你问的是有效的和有效的。但通常,您可以将函数传递给具有<div class="parent"></div> <div class="parent"> <div class="child"> test </div> </div>帮助器的组件,并在action定义中定义您的操作。我可以说这是将函数传递给组件并从组件中触发操作(调用函数)的常用方法。

MY-component.js

actions

的application.js

import Ember from 'ember';

export default Ember.Component.extend({
  actions: {
    buttonClicked() {
      let foo = this.get('foo');
      foo();
    }
  }
});

application.hbs

import Ember from 'ember';

export default Ember.Controller.extend({
  appName: 'Ember Twiddle',

  foo() {
    alert('hi there');
  }
});

MY-component.hbs

<h1>Welcome to {{appName}}</h1>
<br>
<br>
{{outlet}}
{{my-component foo=foo}}
<br>
<br>