Ember Invoke
EmberJS helper to invoke methods on a given context such as components or controllers.
Installation
ember install ember-invoke
Usage
{{invoke this 'methodName' 'any' 'number' 'of' 'args'}} {{!-- OR --}} {{some-component prop=(invoke this 'methodName' 'any' 'number' 'of' 'args')}}
Why?
// component/restaurant.js;
{{!-- templates/component/restaurant.hbs --}}{{#each people as |person|}} <h5>{{person.first}} {{person.last}}</h5> {{!-- The only way you could make this work would be to create a `can-drink` helper that you would call like so: (can-drink person.age) However, that logic might not make sense outside of the scope of this component. Also, many times the logic is simple (like in this example) and creating a whole separate helper file is over kill. This is where the invoke helper comes in. Now you can simply `invoke` any method on a give context and it will be called with the arguments that are passed in. --}} {{#if (invoke this 'canDrink' person.age)}} <p>is of legal drinking age</p> {{else}} <p>is <b>NOT</b> of legal drinking age</p> {{/if}}{{/each}}