this.model.toJSON()没有返回集合所在的项目,为什么?

时间:2011-12-16 18:22:10

标签: jquery backbone.js mustache underscore.js

我有:

NotificationModel = App.BB.Model.extend({
    defaults : {
        read : false
    },
    urlRoot : '/notifications'
});


NotificationCollection = App.BB.Collection.extend({
    model: NotificationModel,
    url: '/notifications',
    initialize : function() {
        this.fetch();
    },
});

NotificationView = App.BB.View.extend({
    tagName : 'li',
    render : function() {
       console.log((this.model.toJSON())
    }
});

此日志未返回从服务器获取的项目。但是当我做me.collection.length时,我确实得到了正确的长度。我做错了什么?

由于

1 个答案:

答案 0 :(得分:2)

其他人所做的评论正在引用fetch方法是异步的。所以this.fetch()立即返回。如果您在this.fetch之后立即渲染视图,则该集合仍将为空。

你应该在呈现你的收藏的视图中放置这样的东西:

initialize: function(){
    this.collection.bind("reset", this.render);
}