mut (attr) public
The mut helper lets you clearly specify that a child Component can update the (mutable) value passed to it, which will change the value of the parent component.
This is very helpful for passing mutable values to a Component of any size, but critical to understanding the logic of a large/complex Component.
To specify that a parameter is mutable, when invoking the child Component:
{{my-child childClickCount=(mut totalClicks)}}
The child Component can then modify the parent's value as needed:
// my-child.js
export default Component.extend({
click() {
this.get('childClickCount').update(this.get('childClickCount').value + 1);
}
});
Additionally, the mut helper can be combined with the action helper to mutate a value. For example:
{{my-child childClickCount=totalClicks click-count-change=(action (mut totalClicks))}}
The child Component would invoke the action with the new click value:
// my-child.js
export default Component.extend({
click() {
this.get('clickCountChange')(this.get('childClickCount') + 1);
}
});
The mut helper changes the totalClicks value to what was provided as the action argument.
See a 2.0 blog post for additional information on using {{mut}}.
Parameters:
-
attr
[Object] - the "two-way" attribute that can be modified.
Please login to continue.