我組建了一個基本的CRUD系統的一個項目,我們已經決定在Backbone.js的& CoffeeScript中捆綁到抽象我們更多的JavaScript功能。對我來說學習曲線一直非常陡峭,因爲我不是一個JS專業人員。Backbone.js的取()Ajax錯誤
目前,我只是試圖拉記錄。任何記錄。所以我已經通過JSON操縱了一條虛擬路徑來提供一個'產品'記錄集,以便在我前進之前查看它是如何呈現的。
window.Product = Backbone.Model.extend
initialize: -> console.log this
window.Products = Backbone.Collection.extend
model: Product
initialize: -> console.log this
url: '/dummy'
所以,在控制檯中,I型:
product = new Product()
而且這似乎使產品就好了。但是,當我鍵入:
product.fetch()
它返回:
TypeError: Cannot call method 'ajax' of undefined
我試圖與收集同樣的事情。
products = new Products()
products.fetch()
TypeError: Cannot call method 'ajax' of undefined
我做了其他部分(圖渲染等)工作得很好,但是這Ajax錯誤是在我反覆得到。我花了幾個小時尋找通過不同的文檔(包括官方的,所有的信息,我可以從維基小道),嘗試在普通的JavaScript代碼以及CoffeeScript中,實現不同範圍(有/無窗命名空間)等等。Google上沒有任何內容。
這一定有什麼可笑的簡單,我也許應該只是知道,但我無法弄清楚了我的生活。或者這是我錯過的文檔中的一個地方。誰能告訴我我做錯了什麼?
還要注意的是骨幹網需要你*骨幹本身之前,包括jQuery的或的Zepto *。看[註釋的源代碼](http://documentcloud.github.com/backbone/docs/backbone.html):它的第一行之一是'var $ = this.jQuery || this.Zepto;'。所以'jQuery' /'Zepto'必須已經存在,否則當$'ajax'被調用時'$'將會是'undefined'。 – 2011-06-13 16:56:51
謝謝你們,這絕對是它。知道這是一個noob錯誤! – ironchamber 2011-06-14 04:36:14