/ / Importer json dans la vue backbone - javascript, json, backbone.js

Importer json dans la vue backbone - javascript, json, backbone.js

Je suis nouveau dans l’épine dorsale et je m’habitue toujours au flux de tout. Ce que j’essaie de faire, c’est d’importer. data.json déposer dans mon modèle et l'utiliser à mon avis ...

data.json

[
{ id: "001", student: "Mark" },
{ id: "002", student: "Sally" },
{ id: "003", student: "Harold" }
]

assets / data.js (modèle)

var DataModel = Backbone.Model.extend({
url: "assets/data.json",

initialize: function() {
// this logs properly
console.log("this initializes");
}
})

data_view.js

var Students = Backbone.View.extend({
initialize: function() {
var data = new DataModel();
data.fetch();

// doesn"t return json
console.log(data);
}
})

les journaux de données comme si ...

v __proto__: Backbone.Model
> constructor: ()
> initialize: ()
url: "assets/data.json"
> __proto__: Object

Toutes mes importations sont correctes, mais pourquoi mon fichier Json ne se charge-t-il pas dans mon champ de vision? Qu'est-ce que je fais de travers? J'ai essayé de faire une collection, mais cela a eu le même effet.

Réponses:

2 pour la réponse № 1

Parce que fetch utilise jQuery Ajax, il est donc asynchrone. Si vous enregistrez des données immédiatement après l'appel de fetch, les données ne sont pas extraites du serveur. Procédez comme suit:

data.fetch({
success: function(model, response, options) {
console.log(model);
},
error: function() {

}
});

Référence du lien: http://backbonejs.org/#Model-fetch


0 pour la réponse № 2

Avec JQuery:

        var DataModel = new DataModel();
$.when(DataModel.fetch()).then(function() {
var students = new Students({model: DataModel });
});