如何在EmberJS中设置Array内对象的值?

时间:2016-06-02 17:24:09

标签: ember.js

在我的ember应用程序中,我有一个对象数组。我需要操纵数组中的一些对象。

例如:数组:[{a:1}]然后我需要将a更改为2。

someArray: [{a: 1}],
didInsertElement() {
     var self = this;
     this.$('.some-element').on('scroll',function() {
         self.get('someArray')[0]['a'] = 2; // HOW TO DO THIS ?
     });
}

此外,我还需要将更改反映在视图中。

注意:Ember版本1.13

4 个答案:

答案 0 :(得分:15)

var temp = self.get('someArray').objectAt(0);
Ember.set(temp, "a", 2);

这应该有效

答案 1 :(得分:0)

您可以根据索引或每个对象设置每个Object属性,方法是使用forEach迭代。

someArray: [],
didInsertElement() {
  var self = this;
  this.$('.some-element').on('scroll',function() {
    //You can add new properties and set properties as follows by iteration
    self.get('someArray').forEach(function(item/*, index*/) {

      var emberObject = Ember.Object.create(item);
      //based on index also you can do
      //if (index === 0) { emberObject.set('newProperty', 'newValue'); }

      emberObject.set('newProperty', 'newValue');            
    });
  });
}

答案 2 :(得分:0)

# 'DEFAULT_PERMISSION_CLASSES': (
#     'rest_framework.permissions.IsAuthenticated',
# ),

答案 3 :(得分:-2)

someArray: [],
didInsertElement() {
     this.$('.some-element').on('scroll',function() {
         this.get('someArray').objectAt(i).set('item', items[index]);
     });
}

希望这有帮助!