我正在尋找一種優雅的方式,在添加模型時將模型添加到集合中。在Backbone源代碼中有一個unshift
方法可以做到這一點,但用於將模型添加到集合的add
方法太複雜,不能簡單地擴展。我正在建立一個依賴照片和推文的幻燈片放映,並且應該始終顯示最新的最新,最舊的最後一個。我的問題簡單化:將模型添加到集合
初始化程序,API調用返回:
apple, banana, lemon
所以,蘋果最新的幻燈片。該集合構建的:
apple, banana, lemon
間隔後,API調用檢查是否有新的水果,結果是:
orange
收藏追加型號:
(apple, banana, lemon), orange
這不是我想要的東西;橙色是最新的水果,之後是蘋果。但是,在這種情況下,我可以在添加幻燈片之前撤消最初的收藏集,並在繪製幻燈片時重新反向。現在,事情變得更加複雜(我加了括號來澄清):
API調用檢查甚至更多的水果:
pineapple, kiwi
集合追加新車型一個接一個:
((apple, banana, lemon), orange), pineapple, kiwi
所以現在從新到舊,我的收藏看起來像這樣:
((not so old, older, oldest), pretty new), brand new, new
這絕對沒有意義:)
當然,更改API響應可能會使我的生活更輕鬆,但目前這不是一種選擇;另外,它應該無關緊要,因爲響應中的項目順序是新的 - >舊的,這對我來說很好。
我找不到一個開箱即用的解決方案,我不想通過將部分骨幹源克隆到unshift
新模型來過度複雜化。建議?謝謝!
'unshift'將不會如何工作?從文檔「在集合開始處添加模型,採用與添加相同的選項」。 – JayC
由於我沒有手動向集合添加模型,我使用間隔從服務器獲取json,而Backbone將每個對象作爲模型追加到集合中。當然,我可以介入並使用'unshift',但這會使我的代碼複雜化(也許我應該指出,我的API endpont不是我的集合的真實代表,它是一種「流式」集合) – Phortuin