我有一个非常基本的 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();