我目前正在編寫一個Backbone Marionette應用程序,最終總計大約6個不同的「屏幕」或頁面,這些應用程序會經常共享內容,我不確定如何最佳結構和訪問區域。Backbone Marionette使用Require.js,Regions和如何設置
我正在使用此處描述的應用/模塊設置:StackOverflow question 11070408: How to define/use several routings using backbone and require.js。這將是一個應用程序,它將隨着時間的推移添加新功能和內容,並且需要可擴展(並且顯然儘可能重複使用)
我正在構建的單頁應用程序在每個應用程序上有4個主要部分屏幕:標題,主要內容,輔助內容,頁腳。
頁腳在所有頁面上將保持一致,頁眉在3頁上相同,並在其餘3頁上略有修改(使用約80%的相同元素/內容)。 「更多內容」區域將在各個頁面上重複使用。
在我app.js文件,我確定我區像這樣:
define(['views/LandingScreen', 'views/Header', 'router'], function(LandingScreen, Header, Router) {
"use strict";
var App = new Backbone.Marionette.Application();
App.addRegions({
header: '#mainHeader',
maincontent: '#mainContent',
morecontent: '#moreContent',
footer: '#mainFooter'
});
App.addInitializer(function (options) {
});
App.on("initialize:after", function() {
if (!Backbone.History.started) Backbone.history.start();
});
return App;
});
現在,在上述後回頭參考應用程序的設置,這將是處理該地區的最佳方式。我是否會獨立重申每個子應用程序中的每個區域?這似乎是保持模塊儘可能獨立的最佳方式。如果我走這條路線,在子應用程序之間打開/關閉或隱藏/顯示這些區域的最佳方式是什麼?
或者,我是否在app.js中聲明區域?如果是這樣,那麼我將如何從子應用程序最好地改變和編排這些區域的事件?在app.js文件中定義區域似乎與保持模塊和核心應用相互瞭解的最小限度相反。另外,我看到的每個示例都有主應用程序文件中的appRegions方法。那麼從子應用程序訪問和更改這些區域的最佳做法是什麼?
在此先感謝!
對不起,我一直在根據我得到的兩個答案辯論AMD與非AMD。對於長期計劃,儘管事實上我覺得我花更多的時間去搞清楚管理依賴關係的問題,而不是我的應用程序的功能,但最好還是選擇AMD的路線。 – mindpivot