@dormisher に似たアプローチを使用しました。
オプション1
MyApplication
モデル、ビューなどのプレースホルダー オブジェクトを含むオブジェクトを作成します。
var MyApplication = {
Models: {},
Views: {},
Collections: {},
Routers: {},
initFirstApp: function() {
new MyApplication.Routers.FirstRouter();
Backbone.history.start();
},
initSecondApp: function() {
// similar to above...
}
};
MyApplication
オブジェクトを拡張して、モデル、ビューなどを定義します。
var MyApplication.Routers.FirstRouter = Backbone.Router.extend({ ... });
次に、FirstApp を実行したいときにのみ読み込まれる js ファイルがあると仮定して、MyApplication.initFirstApp()
.
(もちろん、@dormisher のコード サンプルが示すように、バックボーン コンストラクトをアプリケーションごとに整理し、それぞれにinit
orstart
メソッドを与えることもできます。)
オプション 2
もう 1 つのオプションは、すべてのバックボーン主導のページでインスタンス化できる共通のルーターを 1 つ持つことです。現在の URL が定義済みのルートと一致する場合、バックボーンが自動的に引き継ぎます。各ページに 1 つのルートしかない場合 (つまり、各アプリケーションが SPA であり、サブルートがない場合) にのみ、このアプローチを使用することをお勧めします。