4

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() にルーティングして実行します

前もって感謝します !

4

1 に答える 1