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 ausDanke im Voraus !