ember.js - babel is exporting "this" as undefined in ember computed property -


using ember-cli@0.2.7 , emberjs@1.13.2.

source emberjs model

export default ds.model.extend({     name: ds.attr('string'),      displayname : ember.computed('name', () => {       return this.get('name');     }) }); 

translated model

'use strict';  var _this = undefined;  exports['default'] = ds['default'].model.extend({     name: ds['default'].attr('string'),      displayname: ember.computed('name', function () {         return _this.get('name'); //at point _this undefined     }) }); 

the trouble _this never set the model. why case?

babel exporting undefined because context preserving using fat arrow function undefined.

there no difference between have @ moment , 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 case undefined. passing options ds.model object not exist yet.

export default ds.model.extend({     name: ds.attr('string'),      displayname : ember.computed('name', function() {       return this.get('name');     }) }); 

on unrelated note, since you're using ember let's make use of es6 destructuring make code 'nicer':

import ember 'ember'; import ds 'ember-data';  const { computed } = ember; const { attr, model } = ds;  export default model.extend({     name: attr('string'),      displayname : computed('name', function() {       return this.get('name');     }) }); 

Comments

Popular posts from this blog

toolbar - How to add link to user registration inside toobar in admin joomla 3 custom component -

linux - disk space limitation when creating war file -