Ember.js 为什么';我的余烬计算属性是否获得第二个参数?

Ember.js 为什么';我的余烬计算属性是否获得第二个参数?,ember.js,Ember.js,我希望将第二个参数传递给我的computed属性方法,但事实并非如此。我需要这个,这样我就可以调用setter来用新数据保存我的模型。与此行为不同的是,似乎在保存模型之前再次调用了我的computed属性,并对新值进行了重击—根本不会调用setter,因为我只得到一个参数。计算属性: changeBananas: function(k, v) { var bananas = this.get('bananas'), bananaList = []; console.log('args

我希望将第二个参数传递给我的computed属性方法,但事实并非如此。我需要这个,这样我就可以调用setter来用新数据保存我的模型。与此行为不同的是,似乎在保存模型之前再次调用了我的computed属性,并对新值进行了重击—根本不会调用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:


我尝试了propertyWillChange()和朋友来阻止观察者,但它没有起到任何作用。还有别的办法吗?我的computed属性用于在可编辑字段中显示项目之前对项目进行一些格式化。我希望能够像连接到常规模型属性的任何其他字段一样更改所述字段并进行保存。

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


如果它注意到从属属性已更改,则不会同时使用两个参数调用它。

谢谢。在这种情况下,有没有办法让它这样做?如何确定在computed property函数之外设置的新值?为什么不将ChangeBarana更改为观察者?调用它'ModifyBanana',而不是您的返回(在arguments.length if和最后一个返回中),将'ChangeBanana'属性设置为bananaList值,如下所示:this.set('ChangeBananaList',bananaList),该值获取“Uncaught TypeError:Object function(){”和“加载路由时出错:TypeError:无法调用未定义的方法'set'接受原始答案,因为它正确地回答了我的问题。然而,我的实际问题仍然存在。