簡體   English   中英

骨干-遍歷數組屬性中的對象

[英]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());
        });
    });
},

我認為這很清楚-我嘗試遍歷brightnormal陣列中的每種顏色。 而且它不會更新這些數組中的顏色。 _.each此顏色似乎具有新值,但看起來它只是顏色的副本,而不是參考。 有人知道我該怎么做嗎? 我的意思是_.each循環,我不想弄亂forlength_.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM