« All deprecation guides
Deprecation Guide for
Computed Property
Deprecation Guide for
Computed Property .property()
Modifier
until: 4.0.0
id: computed-property.property
.property()
is a modifier that adds additional property dependencies to an
existing computed property:
const Person = EmberObject.extend({
fullName: computed(function() {
return `${this.firstName} ${this.lastName}`;
}).property('firstName', 'lastName')
});
To update, move the dependencies to the main computed property definition:
const Person = EmberObject.extend({
fullName: computed('firstName', 'lastName', function() {
return `${this.firstName} ${this.lastName}`;
})
});
In the case of the filter
, map
, and sort
computed property macros, it was
previously possible to need to add dependencies because they weren't available
in the public APIs of those macros. An optional second parameter has now been
added to these macros which is an array of additional dependent keys, allowing
you to pass these dependencies to them.
Before:
const Person = EmberObject.extend({
friendNames: map('friends', function(friend) {
return friend[this.get('nameKey')];
}).property('nameKey')
});
After:
const Person = EmberObject.extend({
friendNames: map('friends', ['nameKey'], function(friend) {
return friend[this.get('nameKey')];
})
});
Custom computed property macros that encounter this issue should also be refactored to be able to receive the additional keys as parameters.