Backbone.js を使用したアプリケーションの編成に関するチュートリアルや情報がたくさんあることは知っています。それらのチュートリアルの助けを借りて、徐々に作成しています。ルーターの概念を理解していないようです。まあ、私はルーターが出発点であることを認識しており(そしてアプリの状態を伝えます)、そこにロジックを追加しない方がよいでしょう。
ルーターが1台あります。私のアプリは、最初にヘッダー、フッター、およびページのメイン部分を読み込みます。主要部分では、まず、ユーザーをログインする必要があります。ログインページをロードするには、次のようにします。
var AppRouter = Backbone.Router.extend({
initialize : function() {
var headerView = new HeaderView({el:$('#header')});
headerView.render;
var footerView = new FooterView({el:$('#footer')});
footerView.render;
var loginView = new LoginView({el:$('#login')});
loginView.render;
},
routes : {
"inbox" : "inbox",
"sentbox : "sentbox"
},
inbox : function() {
// ...
},
sentbox : function() {
// ...
}
});
app = new AppRouter();
Backbone.history.start();
ログインに成功すると、メールページが読み込まれます。MailView には、受信ボックス、送信ボックスなどを表示するイベントがいくつかあります。
events: {
"click .inbox": "showInbox",
"click .sentbox": "showSentbox",
},
showInbox : function() {
// app.route() or app.inbox() - ?
}
この時点で、ルーターに../#inbox
と を../#sentbox
それぞれ表示させたいと思います。アドレスバーにそれを表示するルーターのメソッドの1つをここで呼び出す必要があるかどうか疑問に思っています。私が混乱しているのは、1 つのルーターを使用する方が複数のルーターを使用するよりも優れていると言われているためです。もしそうなら、私AppRouter
はより複雑になります。もう 1 つの問題は、ユーザーがアドレスを直接入力した場合、そのページを読み込む必要があることです。ロジックをAppRouter内に配置する必要があると思います。
ここで正しいアプローチを教えてください。よろしくお願いします!