2014-06-27 1 views
1

Je suis en train de mettre en place un modèle en utilisant épine dorsale qui se charge d'une URL à distance: https://api.github.com/legacy/repos/search/javascript. Voici ce que j'ai jusqu'ici.Fetch collection épine dorsale de l'erreur url à distance

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

var RepoCollection = Backbone.Collection.extend({ 
    url : "https://api.github.com/legacy/repos/search/javascript", 
    model : Repo 
}); 


var repos = new RepoCollection(); 

repos.fetch({success: function(){ 
    console.log(repos.models); 
}}); 

Cela me donne juste un tableau vide. Pourquoi cela ne fonctionne-t-il pas? Cette URL contient juste un tableau JSON non vide. J'ai aussi essayé la fonction d'analyse sans succès.

parse : function(data) { 
    return data.results; 
} 

Si l'api github ne supporte pas ce genre d'appel, que quelqu'un a un exemple d'une URL à distance où je peux utiliser backbone pour récupérer les données?

Edit: Je dois ajouter que je regardais la console réseau sur Chrome et j'obtenir une réponse 200 OK avec la réponse correcte JSON de GitHub. Je suppose que j'ai juste du mal à trouver comment accéder à ces données et remplir mon RepoCollection avec.

Répondre

0

Vos données est enveloppé dans une clé repositories, pas results et ressemble à ce

{ 
    "repositories": [ 
     ... 
    ] 
} 

Essayez

var RepoCollection = Backbone.Collection.extend({ 
    url : "https://api.github.com/legacy/repos/search/javascript", 
    model : Repo, 

    parse : function(data) { 
     return data.repositories; 
    } 
}); 

et une démo http://jsfiddle.net/nikoshr/vHX7C/

+0

Merci, cela fonctionne très bien. – user3783608

0

Vous pouvez essayer:

repos.fetch({success: function(data){ 
    console.log(data); 
}}); 
Questions connexes