您可以在Ember中使用组件助手来覆盖组件功能吗?

时间:2018-11-01 18:58:24

标签: javascript ember.js

对于Ember还是很新的。我正在尝试使用component Ember助手来覆盖组件上的函数。

我的组件看起来像:

Ember.Component.extend({
  ...
  getValue() {...}
  ...
});

我还有另一个带有如下模板的组件:

<div>
  {{component myComponentName getValue=(action myCustomGetValue)}}
</div>

我想这会覆盖原始组件中的getValue函数,但不会。是否可以使用此助手来做到这一点?还是我走错路了?

1 个答案:

答案 0 :(得分:2)

是的,您可以将函数引用传递给Emberjs中的component帮助者。

您可以通过component助手来调用组件,例如:

{{component "my-component" getValue=(action "myCustomGetValue")}}

在这种情况下,您应该在父组件或控制器中定义自定义操作,例如:

actions: {
  myCustomGetValue(){
    return "my custom value";
  }
}

您可以查看this twiddle的用法。