Eu sou novo no backbone, e ainda estou me acostumando com o fluxo de tudo .. O que estou tentando fazer é importar data.json
arquivo no meu modelo e fazer uso dele na minha opinião ...
data.json
[
{ id: "001", student: "Mark" },
{ id: "002", student: "Sally" },
{ id: "003", student: "Harold" }
]
assets / data.js (modelo)
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);
}
})
registros de dados como assim ...
v __proto__: Backbone.Model
> constructor: ()
> initialize: ()
url: "assets/data.json"
> __proto__: Object
Todas as minhas importações estão corretas, mas por que o meu json não está carregando na minha opinião? O que estou fazendo errado? (Eu tentei fazer uma coleção, mas isso teve o mesmo efeito; nenhum json para ser encontrado)
Respostas:
2 para resposta № 1Como o fetch está usando o jQuery Ajax, ele é assíncrono. Se você registrar os dados imediatamente após chamar a busca, os dados não serão extraídos do servidor. Você deve fazer o seguinte:
data.fetch({
success: function(model, response, options) {
console.log(model);
},
error: function() {
}
});
Referência de link: http://backbonejs.org/#Model-fetch
0 para resposta № 2
Com o uso do JQuery:
var DataModel = new DataModel();
$.when(DataModel.fetch()).then(function() {
var students = new Students({model: DataModel });
});