2013-05-13 102 views
1

我這裏還有我的簡化代碼骨幹模型無法獲取任何數據

var PlayerModel = Backbone.Model.extend(); 

var PlayerProfileView = Backbone.View.extend({ 
model : new PlayerModel({url: "http://mysite.com/api/getpalyer.php"}), 
render: function(){ 
this.model.fetch(); 
} 
}); 

系統不斷給我這個錯誤消息

Uncaught Error: A "url" property or function must be specified

我完全不知道這有什麼錯我的代碼。

+1

您已經定義了一個'PlayerModel'不是'Player',被認爲只是一個錯字你的榜樣? – ponzao 2013-05-13 08:56:08

+0

這是一個錯誤的問題......但它是我的代碼中的PlayerModel – 2013-05-13 09:26:07

+0

在最後'new PlayerModel({url:「http://mysite.com/api/getpalyer.php」})中替換分號;'with逗號作爲新的PlayerModel({url:「http://mysite.com/api/getpalyer.php」}),' – Cyclone 2013-05-13 09:37:39

回答

3

這裏的Backbone#Model的構造:

var Model = Backbone.Model = function(attributes, options) { 

所以你看到的,options應給予作爲第二個參數。在這裏你傳遞你的網址爲attribute(嘗試this.get('url')來驗證)。

更改爲:

model : new PlayerModel(null, {url: "http://mysite.com/api/getpalyer.php"}); 

另一件事:

另外,聲明在類定義(new PlayerModel({url: "http://mysite.com/api/getpalyer.php"}),)一個新的對象將產生具有由所有共享該對象的一個​​實例你的對象(即任何PlayerProfileView將共享一個PlayerModel的實例)。其背後的原因是,它是在課程創建並放入課程原型時進行評估的。

+0

有一個錯字沒有警告現在....但是也沒有得到。 我用get('url')來檢查url是否正確....它告訴我它是未定義的......太奇怪了 – 2013-05-13 10:30:10

+0

我也用JSON來檢查模型內部是什麼....沒有任何東西它...但我很確定該網址正常工作,並返回一個JSON – 2013-05-13 10:41:41

+0

@ChitoCheng'get('url')'將工作在錯誤的版本(你通過網址作爲屬性)。使用'this.url'來檢查它是否在正確的版本。至於請求本身,請檢查控制檯中的網絡選項卡,它會有所幫助。 – Loamhoof 2013-05-13 11:06:45

0

我想你應該把urlPlayerModel的定義,而不是通過它,當你調用new的。如果你仍然想它傳遞new,你需要指定它作爲第二個參數(如Loamhoof指出)

var PlayerModel = Backbone.Model.extend({ 
    url: "http://mysite.com/api/getpalyer.php" 
}); 
+0

現在沒有警告......但沒有任何提示......我用JSON來檢查模型內部是什麼......但它是空的。甚至我用get('url'),它返回我'未定義' – 2013-05-13 10:44:01