Ember.computed.apply()共享getter / setter

时间:2015-08-11 22:21:14

标签: javascript ember.js

从Ember 1.12开始,下面的代码块会生成deprecation warning,因为有些更改会鼓励使用不同的getter和setter。我理解这个概念,但我不确定如何重构使用Ember.computed.apply()的内容,以便解决这些弃用警告。

var args = this.constructor.primaryKeys.concat(function(_, setValue) {
  var keyNames = this.constructor.primaryKeys;
  if (setValue === undefined) {
    var key, value;
    for (var i = 0; i < keyNames.length; i++) {
      key   = keyNames[i];
      value = this.get(key);

      if (!Ember.isNone(value)) {
        return value;
      }
    }
  } else {
    if (this.get('primaryKey') !== setValue) {
      this.set(keyNames[0], setValue);
    }
    return setValue;
  }
});
var primaryKey = Ember.computed.apply(Ember, args);

Twiddle demonstrating the problem

0 个答案:

没有答案