Class Helper

public
import Helper from '@ember/component/helper';

Ember Helpers are functions that can compute values, and are used in templates. For example, this code calls a helper named format-currency:

app/templates/application.hbs
<Cost @cents={{230}} />
app/components/cost.hbs
<div>{{format-currency @cents currency="$"}}</div>

Additionally a helper can be called as a nested helper. In this example, we show the formatted currency value if the showMoney named argument is truthy.

{{if @showMoney (format-currency @cents currency="$")}}

Helpers defined using a class must provide a compute function. For example:

app/helpers/format-currency.js
import Helper from '@ember/component/helper';

export default class extends Helper {
  compute([cents], { currency }) {
    return `${currency}${cents * 0.01}`;
  }
}

Each time the input to a helper changes, the compute function will be called again.

As instances, these helpers also have access to the container and will accept injected dependencies.

Additionally, class helpers can call recompute to force a new computation.