Backbone.js / Marionette.js でのルーティングについて 3 つの質問があります。
- 1) アプリケーションのルーターが登録したすべてのルートのリストを取得するにはどうすればよいですか?
たとえば、Express.js (Node.js 内) の場合は になりますapp.routes
。
Backbone.js / Marionette.js で同じことをしようとしていますが、これを行うプロパティまたはメソッドが見つかりませんでした。
- 2) URL をクリーンアップして、URL の前にあるハッシュタグ「#」を削除したいのですが、それらがルーターをトリガーすることはわかっているので、どうすればこれを行うことができますか?
バックボーン ルーターのプロトタイプを作成する次のスクリプトを見つけましたが、これは安定したソリューションというよりハックに近いものです:ハッシュ URL を使用しないシンプルなバックボーン ルーティング
- 3) Backbone.js / Marionette.js でサブルーターを持つことは可能ですか?
サブルーターとは、URL の一部のみを処理するルーターのことです。
var AppRouter = Backbone.Router.extend({
routes: {
'articles' : 'MyArticleRouter'
}
});
var MyArticleRouter = Backbone.Router.extend({
routes: {
'science' : 'someMethod',
'literrature' : 'someOtherMethod'
}
});
これにより、AppRouter でメイン ルートを定義し、カテゴリ固有のサブルーターですべてのサブルート (2 番目のスラッシュ "/" の後の部分) を定義できるようになるため、URL がもう少し分類されます。
したがって、「ホスト名/記事/科学」という URL の場合、ルーティング プロセスは次のようになります。
- 1) 「/articles/science」を AppRouter に渡す
- 2) AppRouter は URI を分割し、「/articles」の部分を取ります
- 3) AppRouter は、登録されている「/articles」ルートを見つけます
- 4) AppRouter は、MyArticleRouter がその URI 要素にバインドされていることを認識します
- 5) AppRouter はルーティングをそのルーターに転送し、"/science" 要素のみをルートとして渡します。
- 6) MyArticleRouter は "/science" を someMethod() にルーティングして実行します
前もって感謝します !