为什么我的Ember计算属性不能得到第二个参数?

时间:2014-03-03 10:05:03

标签: ember.js

我希望将第二个参数传递给我的计算属性方法,但事实并非如此。我需要这个,所以我可以调用一个setter来保存我的模型和新数据。而不是那种行为,似乎我在保存模型之前再次调用我的计算属性,并且破坏了新值 - 从不调用setter,因为我只得到一个参数。计算属性:

changeBananas: function(k, v) {

  var bananas = this.get('bananas'), bananaList = [];

  console.log('args: ');
  console.log(arguments);

  bananaList = bananas.map(function(b) {

    return { color: b.get('color') };

  });

  if (arguments.length > 1) {

    console.log('I never get called!');

    return bananaList;
  }

  return bananaList;

}.property('bananas.@each')

完整的JSBin:

http://jsbin.com/razimaxu/2/edit

我试过propertyWillChange()和朋友试图阻止观察者,但它没有做任何事情。还有另一种方法吗?我的计算属性是在可编辑字段中显示之前对项进行一些格式化。我希望能够像连接到常规模型属性的任何其他字段一样更改所述字段并保存。

1 个答案:

答案 0 :(得分:1)

如果您尝试设置计算属性,例如this.set('changeBananas', []),它将只接收两个参数的唯一时间。

如果已注意到依赖属性已更改,则不会使用这两个参数调用它。