Routing in Backbone.js / Marionette.js - keine Hashtags, Routenlisten und Subrouter

Ich habe drei Fragen zum Routing in Backbone.js / Marionette.js:

1) Wie kann ich eine Liste aller Routen erhalten, die die Router meiner Anwendung registriert haben?

Zum Beispiel für Express.js (in Node.js) wäre esapp.routes.

Ich versuche das gleiche mit Backbone.js / Marionette.js zu tun, konnte aber keine Eigenschaft oder Methode finden, die dies tat.

2) Ich möchte meine URLs bereinigen und den Hashtag "#" vor ihnen entfernen. Ich weiß, dass sie die Router auslösen. Wie kann ich das tun?

Ich habe das folgende Skript gefunden, das den Backbone-Router prototypisiert, aber es ist eher ein Hack als eine stabile Lösung:Einfaches Backbone-Routing ohne Hash-URLs

3) Ist es möglich, Subrouter in Backbone.js / Marionette.js zu haben?

Was ich unter Subrouter verstehe, ist ein Router, der nur einen Teil einer URL verarbeitet, z.

var AppRouter = Backbone.Router.extend({
    routes: {
        'articles' : 'MyArticleRouter'
    }
});

var MyArticleRouter = Backbone.Router.extend({
    routes: {
        'science' : 'someMethod',
        'literrature' : 'someOtherMethod'
    }
});

Dies würde meine URLs ein wenig kategorisieren, indem ich die Hauptrouten in AppRouter und alle Subrouten (Teil nach dem zweiten Schrägstrich "/") in kategoriespezifischen Subroutern definieren könnte.

Für die folgende URL: "Hostname / Artikel / Wissenschaft" würde der Routing-Prozess ungefähr so ​​aussehen:

1) "/ articles / science" an AppRouter übergeben2) AppRouter teilt den URI und übernimmt den Teil "/ articles"3) AppRouter findet die registrierte Route "/ articles"4) AppRouter erkennt, dass MyArticleRouter an dieses URI-Element gebunden ist5) AppRouter leitet das Routing an diesen Router weiter und übergibt nur das Element "/ science" als Route6) MyArticleRouter leitet "/ science" an someMethod () weiter und führt es aus

Danke im Voraus !

Antworten auf die Frage(1)

Ihre Antwort auf die Frage