ルーターを使用してビューとコレクションをインスタンス化する非常に基本的なBackboneアプリがあります。アプリをいじってみると、ルーターをインスタンス化するコード行を挿入すると気づきました
router = new DocsRouter();
application.jsファイルの先頭にある場合、アプリは機能しませんでした。ファイルの一番下にある必要がありました。しかし、これは私には意味がありませんでした。アプリを起動するために重要なことはすべてルーター内で行われるため、このコード行の場所が重要なのはなぜですか?どこからでもルーターをトリガーできるべきではありませんか?
window.DocsRouter = Backbone.Router.extend({
initialize : function() {
this.docs = new Docs();
this.docs.fetch();
this.docFormView = new DocFormView({ collection : this.docs });
this.docsView = new DocsCollectionViewTempo({ collection : this.docs });
this.docsView.render();
this.route("doc/:id", "doc", function(id){
console.log(id, this.docs.get(id).toJSON());
});
},
routes : {
"" : "root",
"about" : "about",
"doc/:id" : "doc"
},
root : function() { console.log('Vous êtes à la racine');},
about : function() { console.log('A propos : ceci est un tutorial BackBone');},
doc : function(id) { console.log(id, this.docs.get(id).toJSON()); }
});
router = new DocsRouter();
Backbone.history.start();