我有一個情況使用backbone.js,我有一個模型集合和一些關於模型的附加信息。例如,假設我要返回一個金額列表:他們有一個與每個模型相關的數量。現在假設每個金額的單位總是相同的:說夸脫。然後JSON對象我從我的服務回報可能是這樣的:在backbone.js集合中持久保存和加載元數據
{
dataPoints: [
{quantity: 5 },
{quantity: 10 },
...
],
unit : quarts
}
現在骨幹收藏有本身這個元數據與採集相關聯沒有真正的機制,但有人建議我在這個問題: Setting attributes on a collection - backbone js,我可以用.meta(property, [value])
樣式函數擴展集合 - 這是一個很好的解決方案。但是,自然會出現這樣的結果,我們希望能夠從上面的json響應中清楚地檢索這些數據。
Backbone.js爲我們提供了parse(response)
函數,該函數允許我們指定從何處提取集合的模型列表,並結合url
屬性。但是,我沒有辦法知道如何在不超載的情況下製作更智能的功能fetch()
,該功能可以刪除已經可用的部分功能。
我的問題是:有沒有比重載fetch()
(並試圖將其稱爲超類實現)更好的選擇來實現我想要實現的目標?
感謝
我知道這違背了你在你鏈接的其他後得到了答案,但集合不會擁有模型的所有屬性,比如'parse',能夠覆蓋。如果集合需要元數據有意義,那麼不妨反映在Backbone提供的對象結構中,而不是使用元上集合解決方案「IMO帶外」。 – Stoive 2011-05-09 04:23:57
這對我來說似乎很合理。關鍵在於能夠重寫模型對象以及集合上的parse/url/fetch。非常感謝。 – idbentley 2011-05-09 13:33:58
現在不推薦使用Collection.refresh(),而是使用Collection.reset()。 – JMWhittaker 2012-07-09 18:06:52