仍在努力學習Backbone。目前,我的觀點完全不是由於在我的Backbone Collection上調用.fetch()
後發生的一些未知的,未報告的錯誤而導致的。由於這可能來自我的應用程序中的任何位置,因此我已經爲您查看所有文件設置了一個要點。Backbone.js fetch()在Collection上的問題
視圖中的註釋應該解釋正在發生的錯誤和從服務器的響應(這簡直是剛剛西納特拉+ Redis的)。 /schools
的響應是[{"name":"Foo"},{"name":"Bar"}]
,但我不明白爲什麼會導致錯誤。即使我在我的路由器中創建了new window.fooView
,我的視圖也不會由於某種原因而被初始化。誰能幫我嗎?謝謝!
所以_.bind('all',render)是完全沒用的?我認爲無論何時推斷視圖對象(在這種情況下,在路由器的'new window.fooView'中),都會調用render方法。而不是綁定它,正確的方法是直接從初始化調用它(而不是做'new window.fooView.render')? – Jason
不,這不完全沒用。如果您更改集合(如再次調用fetch或添加/刪除),它將呈現視圖,但問題在於代碼的運行順序。由於提取被調用之前,你有綁定的東西,它去1. fetch調用2.集合事件激發3.你綁定到集合事件,但oops他們已經發射,所以沒有發生馬上。如果您在創建視圖對象後將您的抓取調用移動到router.js'index',那麼它應該開始工作。無論是或第一次顯式調用'render'。 –
下面是一個很好的例子:http://www.jamesyu.org/2011/02/09/backbone.js-tutorial-with-rails-part-2/注意他在他的末尾叫做「渲染」 'initialize'方法。 –