Загрузить данные в коллекцию Backbone из файла JSON?

Я пытаюсь загрузить некоторые данные в 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, так что это не имеет отношения к этому.

17
задан Richard 16 April 2013 в 12:20
поделиться