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.
This commit is contained in:
Michael Lange
2021-03-15 19:41:05 -07:00
parent d6b72c14e2
commit a6a9df5b4b

17
ui/app/helpers/bind.js Normal file
View File

@@ -0,0 +1,17 @@
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);