2013-01-14 69 views
0

我有一個非常簡單的模型,名爲「gameModel」,下面顯示了一個集合「gamesCollection」。當我嘗試在集合中創建新遊戲時,它會向服務器發送帖子,但該帖子中沒有數據。有沒有人知道發生了什麼事?Backbone在Http Post中創建不發送數據給服務器?

//The relevant code 
var game = new gameModel(); 
game.gameId = id; 
gamesCollection.create(game); 

........... 
//The Collection 
define([ 
    'jQuery', 
    'Underscore', 
    'Backbone', 
    'collections/common/mixin', 
    'models/game', 
    'config/restresource' 
    ], function($, _, Backbone, collectionMixin, gameModel, restDomain){ 
    var gamesCollection = Backbone.Collection.extend({ 
     url: (new restDomain()).getGamesRoot(), 
     model: gameModel, 
     initialize: function(){ 
      _.extend(this.__proto__, collectionMixin); 
     }, 

     parse: function(resp, xhr) { 
      var games = []; 
      for(i=0;i<resp.length;i++){ 
       games.push(new gameModel({gameId: resp[i].gameId})); 
      } 
      return games; 
     }, 
    }); 

    return new gamesCollection; 
}); 
+0

您是否重載'Backbone.sync'或設置'Collection.sync'? – rudolph9

+0

@ rudolph9不,一切都應該默認 –

+0

我可以通過直接在模型上調用save來保存工作,這會將遊戲ID放在URL中,但仍然希望通過列表工作 –

回答

1

試試這個

gamesCollection.create({"id":id}); 

Backbone.Collection.create接受屬性作爲第一個參數,模型......如果成功創建了一個模型,返回是一個模型。因此,如果您仍然希望使用game模型對象,則可能需要執行如下操作。

var game = gamesCollection.create({"id":id}); 
+0

爲什麼不''gameCollection.create(game.toJSON())'? – Lukas

+2

@Lukas因爲那麼你有兩個模型對象具有相同的數據...如果你需要添加一個現有的模型集合,然後使用['Backbone.Collection.add'](http://backbonejs.org/#Collection -加)。 – rudolph9

+0

我的問題是,我認爲創建的目的是「創建」模型客戶端並將其保存到服務器。 –

相關問題