0
我有一個非常基本的Backbone應用程序,它使用路由器實例化視圖和集合。在與應用程序打的時候,我注意到,如果我把代碼行的的application.js文件的頂部實例路由器骨幹:構造函數在文件中的位置
router = new DocsRouter();
,然後應用程序沒有工作;它必須位於文件的底部。然而,這對我沒有意義。爲什麼這行代碼的位置很重要,因爲啓動應用程序的所有重要事件都發生在路由器內部?我不應該能夠從任何地方觸發路由器嗎?
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();
如果您在嘗試實例化DocsRouter對象後將構造函數賦值給'window.DocsRouter' *,那該如何工作? – Bergi
@Bergi爲什麼不呢?我是一個小菜鳥,所以如果你可以解釋 – BrainLikeADullPencil
你嘗試在創建它之前使用一些東西? – Bergi