Ember.js计算属性(覆盖get和set)

时间:2016-09-24 21:32:53

标签: javascript ember.js

我正在使用Ember.js应用程序,我正在使用ember-cli 2.7。 我尝试覆盖get和set的属性,但是当我这样做时,我收到了意外的令牌错误。

以下是我的控制器文件的代码:

  import Ember from 'ember';

  export default Ember.Controller.extend({

  isDisabled: true,

  emailAddress: '',

  actualEmailAddress: Ember.computed('emailAddress', function(){
    get(key){
      return `getting email...${this.get('emailAddress')}`;
    }
  }),

  emailAddressChanged: Ember.observer('emailAddress', function(){
    console.log('observer is called: ', this.get('emailAddress'));
  })
});

这似乎是一个简单的解决方案,但我没有找到这个错误并且它会杀了我。请帮助我,谢谢你。

1 个答案:

答案 0 :(得分:3)

这是一个语法错误。 function不应该在那里。计算属性定义应如下所示:

actualEmailAddress: Ember.computed('emailAddress', {
    get(key){
      return `getting email...${this.get('emailAddress')}`;
   },
   set(key, value){
       //...
   }
}),

如果您只对计算属性进行get操作,则可以按如下方式编写:

actualEmailAddress: Ember.computed('emailAddress', function(){
    return `getting email...${this.get('emailAddress')}`;
}),