A better `mut` helper!
npm install ember-set-helperA better mut helper!
``hbs
{{this.greeting}}
`
The {{set}} helper returns a function that sets a value. This can be used in{{on}}
combination with Ember's modifier or component actions to update state
without having to write your own custom action. For simple cases, this is pretty
handy:
`hbs`
For usage in gjs or gts templates:
`js`
import set from 'ember-set-helper/helpers/set'
or
`js`
import { set } from 'ember-set-helper'
If you do not provide a value to the set helper, it will set the value that is
provided to it when called. For example:
`hbs
{{this.count}}
`
`js
// app/components/counter.js
import Component from '@glimmer/component';
import { tracked } from '@glimmer/tracking';
import { action } from '@ember/object';
export default class Counter extends Component {
@tracked count = 0;
@action
updateCount() {
this.count++;
if (this.args.onClick) {
this.args.onClick(this.count);
}
}
}
`
`hbs`
This will set the value of this.currentCount to whatever value is passed to itcount
when it is called (in this case the of the counter component whenever a
user clicks the button).
You can pass a path dynamically using to the helper as well:
`hbs`
With the {{action}} helper and modifier, you could specify a value path usingvalue
the named argument:
`hbs`
You can accomplish the same thing with {{set}} by using the {{pick}} helper{{set}}
from ember-composable-helpers
to first pick the value off of the event, and then pass it to :
`hbs`
- No need to call wrap the helper (e.g. (set this "foo") === (fn (mut this.foo)))(set this "foo" "bar")
- Optional last parameter if setting a static value (e.g. === (fn (mut this.foo) "bar"))
- Cannot be used as both a getter and setter for the value, only provides a setter
- Ember.js v3.4 or above
- Ember CLI v2.13 or above
- Node.js v8 or above
```
ember install ember-set-helper
See the Contributing guide for details.
This project is licensed under the MIT License.