我正在研究相當大的客戶端Backone應用程序,它通過$.getJSON
方法獲取配置,並基於它創建模型,集合和視圖。Backbone.js引用集合和視圖的應用程序方法
start: function() {
var that = this;
$.getJSON(this._source, function(data) {
appController.createEx(data, that._destination);
});
}
比,我有文件controller.js,即基於配置,創建模型,視圖和集合。 所以,我已經有了一個地圖
var map = {
'ex1': {
'collection': CollectionOne,
'View': ViewOne
}
}
,然後,我創建在此基礎上設置一個新的集合和視圖,例如
var myCollection = new type.collection([], config);
這類型會更多,並能更具體一些,例如一種類型的測驗可能包含兩個集合。
該控制器是RequireJS模塊之一,但我正在考慮很多關於這個項目的架構。主要是,我想知道這是一個很好的做法,以及如何做到這一點,以引用另一個對象,例如從視圖到兩個集合。
一種方法,將返回所有的對象這樣從這個controller.js在恩和要求它從另一個文件,只是參考了一些對象 - 這樣
return {
myCollection: myCollection,
myView: myView
}
這是很好的做法,或者我應該通過引用beetweens模型,所以例如我將有一個視圖,其中將包含兩個集合,這將創建時引用?
var myView = new type.collection({
collection: myCollection,
collectionTwo: mySecondCollection
});
我在設計Backbone應用程序方面沒有很大的經驗,特別是在使用requireJS時。 在Backbone TodoMCV教程中,他們舉例創建集合,然後在視圖中引用它們,但是在某個命名空間中有 - 並且帶有require.js,我不知道那個包含很多代碼的require('controller.js')
,會很好或者我現在應該做一些設計改進,以便更有前途的證明,屆時將會有更多類型的quizez /遊戲處理。
您認爲如何?如果您有任何構建應用程序的示例,並且需要在多個集合和視圖之間存在某種關係,我會非常高興。
謝謝!
編輯:更確切地說,這裏是這種情況的一個例子。
我有兩個集合(保持平坦,我需要兩個) - 一個與身體內容,另一個與答案。 在Backbone.View中,我需要引用兩者 - 一個是用戶可見的,另一個需要驗證第一個。我不知道在創建時,我應該通過這個集合的觀點,或加載某些需要模塊containes
var mySecondCollection = new SecondCollection(content);
return {
mySecondCollection: mySecondCollection
}
在視圖
和參考,這樣:
mySecondCollection.get(id);
雙方應該工作,但哪種方法更優雅?
Yeap,但我建立在基於RoR的oter應用程序中的這個應用程序,我只是做這一小部分。 scenerio是該配置通過getJSON方法加載,並傳遞給Backbone應用程序中的differenet模塊。有很多這樣做的方式,我感到困惑,但我現在只需要將兩個集合合併到一個視圖中,並且不知道在這種特定情況下哪種方法是最好的。 – user1854236
檢查我對OP的編輯。 – user1854236
如果只是將模型/集合傳遞給構造函數,我真的不覺得有問題。 – naomik