Babel exports it as undefined, because the context that you save with the thick arrow function is undefined.
There is no difference between what you have at the moment and the following:
let options = { name: DS.attr('string'), displayName : Ember.computed('name', () => { return this.get('name'); }) }; console.log(this); // undefined export default DS.Model.extend(options);
The context in this case is undefined. You pass the DS.Model parameters, the object does not exist yet.
export default DS.Model.extend({ name: DS.attr('string'), displayName : Ember.computed('name', function() { return this.get('name'); }) });
In an unrelated note, since you are using ember, let them use ES6 destructuring to make the code look βbetterβ:
import Ember from 'ember'; import DS from 'ember-data'; const { computed } = Ember; const { attr, Model } = DS; export default Model.extend({ name: attr('string'), displayName : computed('name', function() { return this.get('name'); }) });
source share