将JSON文件加载到Backbone集合

时间:2013-04-10 13:04:14

标签: json backbone.js

您好我正在寻找将JSON加载到Backbone集合的正确解决方案。我看到很多关于这个问题的帖子,但我仍然不明白如何正确地做到这一点。 例如,你能解释一下,为什么这个项目不起作用? http://blog.joelberghoff.com/2012/07/22/backbone-js-tutorial-part-1/

修改
当我使用Firebug查看结果时,它向我显示一个空对象,集合为空。 为什么呢?
修改
嗯,仍然不起作用:/现在我在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 个答案:

答案 0 :(得分:3)

你的fetch调用是异步的,因为我确信它是在教程中编写的。因此,当您执行console.log时,您的收藏仍然是空的 在教程中更进一步..:

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

这应该有用。