6
 self.resultList.forEach(function(item, index, enumerable){
                         console.log(self.resultList);
                         item.id=11;
                         item.get('id');
                     });

像这样的项目: 在此处输入图像描述

如果item.id = 11; 异常是这样的:

断言失败:您必须使用 Ember.set() 访问此属性([object Object])

所以 item.get('id') 或 item.set('id',11)

像这样的例外

未捕获的类型错误:对象 # 没有方法 'get'

这个项目不是 Ember 的对象吗?那么项目是什么?

有人可以告诉我如何更改“itme.id”的值..

太感谢了

4

2 回答 2

21

您可以使用Ember.set(yourObject, propertyName, value);andEmber.get(yourObject, propertyName);来安全地设置和获取属性。

在你的情况下:

self.resultList.forEach(function(item, index, enumerable) {
    Ember.set(item, "id", 11); 
    Ember.get(item, "id");
});
于 2013-07-31T21:25:10.233 回答
0

就我而言,我是这样做的

//In my controller I've defined the array
displayInfoCheckboxes: [
    {
      turnover: {
        label: "Turnover",
        value: 1,
        propertyName: "turnover"
      }
    }, {
      pl: {
        label: "P&L",
        value: 1
      }
    }
]

//and in my handler I passed the full string path to the property in the set method

let displayInfoCheckboxes = this.get('displayInfoCheckboxes');
let controller = this;

displayInfoCheckboxes.forEach(function(items,index) {
  for (var key in items) {
    controller.set('displayInfoCheckboxes.' + index + '.' + key + '.value', false);
  }
})

于 2016-04-27T08:09:51.063 回答