在组件内部调用闭包动作的正确方法是什么?

时间:2018-02-13 20:16:47

标签: javascript ember.js ember-components

我将闭包动作传递给我的组件,如下所示:

{{deployment-timeline loadMoreDeployments=(action "loadMoreDeployments")}}

我应该如何在我的组件中调用它?

actions:{
  loadMoreDeployments(){
    // which one of the following three invocations is best?
    this.attrs.loadMoreDeployments();
    this.get('loadMoreDeployments')();
    this.loadMoreDeployments();
  }
}

1 个答案:

答案 0 :(得分:2)

你应该做

this.get('loadMoreDeployments')();

import {get} from '@ember/object';
...
get(this, 'loadMoreDeployments')();

从未引入attrs的使用,不建议使用带点符号访问ember对象上的属性。

修改:With ember 3.1 (currently in beta) we will get support for dot notation for getters (no setters yet, and not for proxy objects).这意味着您可以从ember 3.1安全使用:

this.loadMoreDeployments();