Ember.computed(v2.0.0):get(key),set(key,value)

时间:2015-08-24 04:48:58

标签: ember.js ecmascript-6

在Ember v2.0.0指南,"对象模型",部分"计算属性":

Person = Ember.Object.extend({
  firstName: null,
  lastName: null,

  fullName: Ember.computed('firstName', 'lastName', {
    get(key) {
      return this.get('firstName') + ' ' + this.get('lastName');
    },
    set(key, value) {
      var [ firstName, lastName ] = value.split(/\s+/);
      this.set('firstName', firstName);
      this.set('lastName',  lastName);
    }
  })
});

请帮助我了解结构" 获取(键)"," 设置(键,值)"和" var [firstName,lastName] = ... "。

新的ES6和/或Ember功能?

1 个答案:

答案 0 :(得分:3)

get(key), set(key, value)只是Ember.js中新计算属性语法的方法签名。因此,如果您在Ember.js中编写计算属性,则需要实现这两种方法并将它们作为对象传递给Ember.computed方法,例如:

myComputedProperty: Ember.computed('propertyToDependOn', {

  get() { // <= function, equal to - get: function() {
    // ...
  },

  set(key, value) { <= function
    // ...
  }

})

var [ firstName, lastName ] = value.split(/\s+/);是与列表匹配的解构赋值示例。它是ES2015规范的一部分。 You can read more about ES2015 on Babel website. Babel是一个JavaScript框架,在Ember CLI中使用,使开发人员能够使用新的JavaScript语法和功能。