[英]Backbone - iterating over objects in an array attribute
我有一個帶有兩個陣列的模型,明亮和正常。 每個陣列包括代表顏色的對象。 我想在模型中實現一種方法,該方法允許設置此顏色的某些屬性(例如,色相)。 所以我這樣寫:
setHue: function(hue) {
_.each([this.get('brigth'), this.get('normal')], function(colors) {
_.each(colors, function(color) {
color.setHue(hue + this.getHue());
});
});
},
我認為這很清楚-我嘗試遍歷bright
和normal
陣列中的每種顏色。 而且它不會更新這些數組中的顏色。 _.each
此顏色似乎具有新值,但看起來它只是顏色的副本,而不是參考。 有人知道我該怎么做嗎? 我的意思是_.each
循環,我不想弄亂for
, length
和_.each
。
Bright拼寫錯誤。 您輸入了brigs。
嗯,我認為您在這里遇到一個普遍的問題。 讓我們嘗試一個例子:
this.get('brigth')
將返回數組,而不是模型,對嗎?
如果是這樣的話,
_.each([this.get('brigth'), this.get('normal')], function(colors) { ...
將遍歷數組的數組,即顏色將獲取數組,而不是模型或集合。 因此,顏色將是數組的一項(我假設是字符串)。 因此,顏色沒有setHue方法。
此外,Paul也是正確的this.getHue(),它沒有引用模型,因為您兩次切換上下文(每個循環一次)。 我希望我沒有在這里完全弄錯。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.