2013-04-10 3 views
1

Привет, Я ищу подходящее решение для загрузки JSON в коллекцию Backbone. Я видел много сообщений с этой проблемой, но я до сих пор не понимаю, как это сделать правильно. Например, не могли бы вы объяснить мне, почему этот проект не работает? http://blog.joelberghoff.com/2012/07/22/backbone-js-tutorial-part-1/Загрузите файл JSON в базовую коллекцию

Edit:
Когда я смотрю на результаты, используя Firebug, он показывает мне пустой объект, коллекция пуста. Почему?
EDIT:
hmmm, все еще не работает:/Теперь я ничего не вижу в firebug и одной странице. :(

 $(function() { 
      var Profile = Backbone.Model.extend(); 

      var ProfileList = Backbone.Collection.extend({ 
       model: Profile, 
       url: 'profiles.json' 
      }); 

      var ProfileView = Backbone.View.extend({ 
       el: "#profiles", 
       template: _.template($('#profileTemplate').html()), 
       render: function(eventName) { 
        _.each(this.model.models, function(profile){ 
         var profileTemplate = this.template(profile.toJSON()); 
         $(this.el).append(profileTemplate); 
        }, this); 

        return this; 
       } 
      }); 

      var profiles = new ProfileList();  
      var profilesView = new ProfileView({model: profiles}); 
      var profiles = new ProfileList(); 
      profiles.fetch(); 
      profiles.bind('reset', function() { 
       console.log(profiles); 
       profilesView.render(); 
      }); 

     }); 
+1

«* могли бы вы объяснить мне, пожалуйста, почему этот проект не работает? *» Какая часть не работает? – Loamhoof

+0

Когда я смотрю на результаты, используя Firebug, он показывает я пустой объект, коллекция пуста. Почему? – Agata

+0

Но какая часть учебника? Какой код вы выполнили? – Loamhoof

ответ

3

Ваша выборка вызов является асинхронным, так как я уверен, что написано в учебнике Так что, когда вы делаете console.log, ваша коллекция еще пуста
дальше в учебнике ....:

var profiles = new ProfileList(); 
profiles.fetch({reset: true}); 
profiles.bind('reset', function() { console.log(profiles); }); 

Это должно работать.

Смежные вопросы