2012-04-18 73 views
1

我想先從骨幹歷史,但是我得到的錯誤:骨幹歷史開始不工作

Cannot call method 'start' of undefined

下面是完整的代碼的鏈接:http://pastebin.com/pNsYghgE

我的jQuery,下劃線和骨幹js包括此代碼之前,所以我想這應該基於文檔工作。我正在使用骨幹網0.9.2。我在這裏幹什麼?

編輯:ANSWER

,所以我說這個代碼之前,我打電話Backbone.history.start()我想沒有創造我的路由器的一個實例:

//initialize all routes 
_(this.modules()).each(function(module, moduleName) 
{ 
    _(module.routers).each(function(router, routerName) 
    { 
     new router(); 
    }); 
}); 

回答

3

經過一個或多個路由器已經與路線定義Backbone.history,纔可以啓動:

http://backbonejs.org/docs/backbone.html#section-113

您可以在這裏看到,該路由定義時創建的Backbone.history對象。我沒有看到發佈的代碼中定義了任何路由器或路由,所以我猜測這是問題所在。

+0

我確實有路由定義,添加了一個pastebin鏈接到完整的源代碼。我還用console.log()測試了路由是在我試圖調用history.start()之前創建的,而且他們是在我正確設置路由的情況下。 – ryanzec 2012-04-18 11:12:34

+0

原來,我沒有創建路由器的實例,將更新我的答案顯示我想添加 – ryanzec 2012-04-18 11:27:49

0

它縫好,你能提供更多的代碼,以及你加載jQuery,非核心和骨幹的html部分。

檢查之前的主幹對象:Backbone.history.start(this.options.historyOptions);

您是否在嘗試啓動歷史記錄之前創建了路由器? (德里克·貝利)

1

當行執行骨幹仍然沒有加載..

使用

$(function() { 
    // ... 
}); 

對於這部分代碼,你已經爲其他塊完成。