Я пытаюсь загрузить некоторые данные в Backbone Collection из локального файла JSON, используя этот очень простой код:
window.Student = Backbone.Model.extend({
});
window.Students = Backbone.Collection.extend({
model: Student,
});
window.AllStudents = new Students();
AllStudents.fetch({ url: "/init.json"});
console.log('AllStudents', AllStudents);
В операторе консоли AllStudents
пуст. Но init.json
определенно загружается.Это выглядит так:
[
{ text: "Amy", grade: 5 },
{ text: "Angeline", grade: 26 },
{ text: "Anna", grade: 55 }
]
Что я делаю не так?
ОБНОВЛЕНИЕ : Я также пробовал добавить прослушиватель reset
над вызовом .fetch ()
, но это тоже не срабатывает:
AllStudents.bind("reset", function() {
alert('hello world');
});
AllStudents.fetch({ url: "/init.json"});
Предупреждение не появляется.
ОБНОВЛЕНИЕ 2 : Пробуем этот сценарий (воспроизведен здесь полностью):
$(function(){
window.Student = Backbone.Model.extend({
});
window.Students = Backbone.Collection.extend({
model: Student,
});
window.AllStudents = new Students();
AllStudents.url = "/init.json";
AllStudents.bind('reset', function() {
console.log('hello world');
});
AllStudents.fetch();
AllStudents.fetch({ url: "/init.json", success: function() {
console.log(AllStudents);
}});
AllStudents.fetch({ url: "/init.json" }).complete(function() {
console.log(AllStudents);
});
});
Даже появляется только один консольный оператор в третьем вызове fetch ()
, и это пустой объект.
Теперь я совершенно сбит с толку. Что я делаю не так?
Файл JSON обслуживается как application / json, так что это не имеет отношения к этому.