open-nomad/ui/app/helpers/bind.js
Michael Lange 014e7ef333 Simple bind helper
This binds a function to a target before passing it along to another
component. It's normal to expect to get to use `this` within functions
on components and controllers, but (sans actions) that doesn't happen
automatically.
2021-03-24 13:52:51 -07:00

18 lines
492 B
JavaScript

import { helper } from '@ember/component/helper';
import { assert } from '@ember/debug';
/**
* bind
*
* Usage: {{bind this.function}}
*
* Returns a version of a function bound to the template target (e.g., component or controller)
*/
export function bind([func, target]) {
assert('A function is required as the first argument', typeof func === 'function');
assert('A context is required as the second argument', target);
return func.bind(target);
}
export default helper(bind);