2012-03-22 50 views
1

我以Backbone開始。我是新來的,我仍然有點困惑。骨幹持久性從服務器檢索數據,但不填充集合和模型

我有這樣的代碼:

var Item = Backbone.Model.extend(); 
var Items = Backbone.Collection.extend({ 
model: Item, 
url: 'http://localhost/InterprisePOS/Product/loaditembycategory/Event Materials', 
}); 

var items = new Items(); 
var onSuccess = function(result){ alert("success"); }; 

items.fetch({ success: onSuccess }); 

當我看着螢火蟲的反應是某種正確的。它返回正確的數據。但是當我挖掘更深的項目是空的。我甚至不知道如何使用Backbone來顯示來自服務器的數據。任何幫助?謝謝

更新

我已經管理這個以某種方式工作。

from: 
var Item = Backbone.Model.extend(); 
to: 
var Item = Backbone.Model; 

我可以看到正在填充的集合,但只有一個項目。雖然我仍然可以通過它來提醒結果。

另一個更新

我設法糾正了我的成功回調。我現在的問題是如何才能打印物品模型?

+0

也試過。我在錯誤回調中添加了警告,但它不會觸發成功或錯誤。 – jongbanaag 2012-03-22 06:43:56

+0

我更新了代碼並添加了成功和錯誤回調。 – jongbanaag 2012-03-22 06:52:50

回答

0

這可能是由於完整的網址http://...。當它進入jQuery ajax調用時,它會看到,假設它是一個外部URL並將其視爲跨域請求。你的成功,錯誤和可能的解析函數不會因此而運行。

另外,在最後一次報價後,您的網址末尾有逗號。如果你在IE中運行它,你可能會因爲這個錯誤而得到一個javascript錯誤。

嘗試使用您的網址作爲相對網址。另外,請確保您在本地Web服務器下運行應用程序,而不是在瀏覽器中打開index.html文件。

+0

我管理成功和錯誤回調運行。我以前的結構錯了。我以某種方式糾正它。關於url的問題沒有問題,因爲我已經使用jquery ajax創建了一個應用程序,我只是想使用主幹來比較和對比。所以CORS不再是一個因素,因爲我之前已經處理過它。我只想打印Item模型來測試它的功能。 – jongbanaag 2012-03-22 07:53:32

+0

要打印模型,您需要將它傳遞到視圖並呈現視圖,將渲染的el放入您的dom中 – ryanmarc 2012-03-22 14:28:48

+0

不能只打印測試,如將其置於警戒狀態?我正在學習骨幹的過程中,我只想看看一切是如何運作的。一步步。 – jongbanaag 2012-03-23 01:07:49