現在我明白這可以通過引用來自其模型的視圖來實現。然而,我試圖堅持Backbone.js的「最佳實踐」,在那裏被認爲是糟糕的做法 - 模型 - >視圖往往是一對多的關係。Backbone.js從集合中獲得以前的視圖
我的問題是這樣的(代碼樣本,以幫助您直觀的問題):
我的分組視圖的陣列。每個視圖的分組數組都包含來自多個集合的視圖。例如,
var views; // Assume views is pre-populated with an array of views, each view's model may be stored in a different collection.
var viewGroups = _.groupBy(views, function(view) {
return view.model.attributes.timestamp; // Unix timestamp for example
});
當我通過我需要訪問直接來自每個視圖的模型前,在它的收藏模型的觀點分組視圖循環。
我能夠訪問以前的模型集合中,像這樣:
_.each(viewGroups, function(viewGroup) {
_.each(viewGroup, function (view) {
var model = view.model;
var collection = model.collection;
var previousModel = collection.at(collection.indexOf(model) - 1);
});
});
但因爲沒有從模型隸屬關係,它的意見,我無法找出哪些視圖訂閱以前的型號在集合中。
var previousModelsViews = ???
我將如何做到這一點之後的設計模式,模型是無知的觀點。
你真的需要訪問的看法,或者你想要的視圖來執行的東西? – Loamhoof 2013-04-24 11:23:49
@Loamhoof我需要訪問視圖,因爲我需要執行DOM操作。 – 2013-04-24 11:54:21
然後我想你可以在之前的模型中觸發一個自定義事件,並讓視圖做他們的東西。 – Loamhoof 2013-04-24 12:02:46