2016-04-03 21 views
2

Bir REST API'sı üzerinden veri almak için Backbone kullanıyorum. , Öyleyim şeyi ben fetch kullanarak veri almak için başarıyla am güçlüBackbone.js içinde bir koleksiyon getirme Construct modelleri

{ 
    "_links": { 
    "self": { 
     "href": "http://api.football-data.org/v1/teams/81/players" 
    }, 
    "team": { 
     "href": "http://api.football-data.org/v1/teams/81" 
    } 
    }, 
    "count": 24, 
    "players": [ 
    { 
     "name": "Marc-André ter Stegen", 
     "position": "Keeper", 
     "jerseyNumber": 1, 
     "dateOfBirth": "1992-04-30", 
     "nationality": "Germany", 
     "contractUntil": "2019-06-30", 
     "marketValue": "15,000,000 €" 
    }, 
    { 
     "name": "Claudio Bravo", 
     "position": "Keeper", 
     "jerseyNumber": 13, 
     "dateOfBirth": "1983-04-13", 
     "nationality": "Chile", 
     "contractUntil": "2018-06-30", 
     "marketValue": "15,000,000 €" 
    } 
] 
} 

postacı bir GET istek yaparsanız

var PlayerModel = Backbone.Model.extend({}); 

var PlayersCollection = Backbone.Collection.extend({ 
    url: "http://api.football-data.org/v1/teams/81/players", 
    model: PlayerModel 
}); 

var catalons = new PlayersCollection(); 
catalons.fetch(); 

Bu aldığım JSON çıktı aşağıdaki gibidir: Benim kodudur Anlaşılamayan veriler, koleksiyonumun catalons koleksiyonunun yalnızca oyunculardan başka bir şey içermemesi için nasıl ayrıştırılamıyor? yani bu şekilde kurmak olsaydı benzer:

var catalons = new PlayersCollection(playerModelArray); 

cevap

3

Bu kullanarak Backbone's Collection parse yöntemi yapabilirsiniz. Sadece PlayersCollection prototip tanımınıza bir ayrıştırma yöntemi eklemeniz gerekir:

var PlayersCollection = Backbone.Collection.extend({ 
    url: "http://api.football-data.org/v1/teams/81/players", 
    model: PlayerModel, 
    parse: function (response) { 
     return response.players; 
    } 
}); 
+0

Çok teşekkür ederim. Şimdi beklendiği gibi çalışıyor. – akshayKhot

İlgili konular