2012-04-19 7 views
1

"ほとんど"すべての画面に存在するルートレベルのHTMLがある場合、どのように整理しますか?BackboneJSのルートレベルの表示

私はバックボーンボイラープレートとrequirejsを使用しています。ルートレベルのビューの1つは、いつでも画面の下部から呼び出すことができるグローバルナビゲーション要素です。

これはモデル(可視性、選択状態、クリックのログなど)を持つモジュールで構成されています。アプリがに保存されています。私のルーターに続いて

ClientName.app = _.extend({ rootViews: {} }, Backbone.Views); 

方法を初期化し、私が持っている:

ClientName.app.rootViews.globalNav = new GlobalNav.Views.BottomView({ model: new GlobalNav.Models.Bottom()}); 

それが正常に動作しますが、機能が成長しているように、ルータは、この方法は、手に負えなくなってきている初期化同様のルートビュー、サブルーターなどがあります。私は完全に何かを逃していますか?

お勧めですか?

+0

グローバルナビゲーションをレイアウトに追加してみませんか? – clexmond

答えて

1

Marionette.Regionをチェックしましたか?これにより、フッターなどの特定のdivにビューを割り当てることができます。異なるページに移動するときに動的にスワップアウトできる別の領域として、アプリケーションのボディ領域を定義することができます。

ルーターは、通常、View Controllerにとっては不適切です。代わりに、私はMarionetteをチェックすることをお勧めします。 application eventsを使用してページナビゲーションコントロールを実装することができます。これを使用して、メインビューを呼び出してリッスンしてから、リージョンを動的にスワップアウトできます。スタートポイントについては、Marionetteのドキュメントの下にあるサンプルアプリケーションをご覧ください。

関連する問題