💼 This rule is enabled in the ✅ recommended config.
Disallows usage of deeply-nested computed property dependent keys with @each.
For performance / complexity reasons, Ember does not allow deeply-nested computed property dependent keys with @each. At runtime, it will show a warning about this:
WARNING: Dependent keys containing @each only work one level deep. You used the key
"[email protected]"which is invalid. Please create an intermediary computed property.
Examples of incorrect code for this rule:
export default Component.extend({
displayNames: computed('[email protected]', function () {
return this.todos.map((todo) => todo.owner.name);
}),
});Examples of correct code for this rule:
export default Component.extend({
displayNames: computed('[email protected]', function () {
return this.owners.mapBy('name');
}),
owners: computed('[email protected]', function () {
return this.todos.mapBy('owner');
}),
});- See the documentation for Ember computed properties with
@each