2016-06-28 7 views
0

私はBackbone JSをかなり新しくしていて、まだそのニュアンスを理解しています。Backbone JSの別のhtmlページでルータオブジェクトを再利用するには?

main.jsにindex.htmlに含まれるルータクラスを作成しました。また、同じhtmlページに関連付けられたルータクラスのオブジェクトを作成しました。

ここで、次のhtmlページにリダイレクトすると、作成されたすべてのオブジェクトが失われます。ウィンドウオブジェクトに関連付ける場合でも、ページリダイレクトでも失われます。

だから、私の質問は、私はのsessionStorageまたはのlocalStorageに格納することなく、次のHTMLページ上の私のルータのオブジェクトを再利用しない方法ですか?

各htmlページに常にルータjsファイルを含めて、毎回新しいオブジェクトを作成する必要がありますか?私がやろうとしていることを達成するための他の方法はありますか?私を教えてください。

+0

私はbackboneJS、AngularJS、それらのjsフレームワークはSingle Web Applicationのために考えられたので、他のhtmlファイルで同じjsロジックを使用したい場合は、同じjsファイルをリンクする必要があります。あなたは、ハンドルバーのようないくつかのテンプレートjs​​フレームワークを使用することを検討することができます – salc2

+0

あなたの返信ありがとうございます。あなたはハンドルバーについて少し詳しく説明できますか?アンダースコアはすでにバックボーンに含まれているので、私はそれを使うことができます。どのように私の要件をそれらを使用して処理することをお勧めしますか? –

+0

あなたのアーキテクチャはわかりませんが、テンプレートシステムを使うのは、別のページにリダイレクトされるのを避け、さまざまなビューのために多くのテンプレートを使って遊ぶことができるからです。 #/ main、#/ dashboard、#/ config、および3つのテンプレートまたはビューの3つのセクション、3つのルートエントリポイントを持つアプリケーションがあるとします。各ルートは、対応するテンプレートに対してバインドして表示するサーバーへのデータ要求を起動します。それはSPA(Single Page Application、ただ一つのindex.html)です。 – salc2

答えて

0

Backbone.jsは、主にSPA(単一ページアプリケーション)、特にデフォルトでハッシュ変更イベントに基づくルーティングを作成するように設計されています。

何らかの理由で、HTMLページ間で実際のリダイレクトを行う必要がある場合は、別々のアプリケーションと見なす必要があります。つまり、両方ともライブラリをロードし、独自のバックボーンコンポーネントなどを設定する必要があります。localStorageまたはREST API。

関連する問題