循环通过App.Car.find()的结果

时间:2013-04-03 12:15:39

标签: javascript ember.js ember-data

假设我有一辆模型车,我可以买到所有车辆

cars = App.Car.find()

如何在所有汽车中循环以更改每辆车的属性(类似于Ruby中的cars.each do |car|)?对于单车,我会用car.set('colour', 'blue');来做,但我缺乏JavaScript理解来解决这个琐碎的问题。

3 个答案:

答案 0 :(得分:3)

  

我怎样才能遍历所有车辆以改变每辆车的属性(像汽车那样做什么?汽车|在Ruby中)?

App.Car.find()返回的对象是Enumberable,因此您可以使用Ember.Enumerable API来访问子对象。例如,您可以:

cars.forEach(function(car) {
  car.set('colour', 'blue');
});

但在这种情况下,使用setEach方法会更有效:

cars.setEach('colour', 'blue');

Enumberables API为您提供了很多选择,请参阅ember enumerables guideenumberables api doc

答案 1 :(得分:1)

您可以使用Ember.Enumerable#setEach

cars = App.Car.find();
cars.setEach('colour', 'le blue');

答案 2 :(得分:0)

如果find()返回一个数组,您可以使用Array.prototype.map MDN

cars = cars.map(function (car) {
  return car.set('colour', 'blue');
});

还有mapping ember enumerables的具体文档。