this.model.toJSON () не возвращает элементы, где находится коллекция, почему? - PullRequest
1 голос
/ 16 декабря 2011

у меня есть:

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 Ответ

2 голосов
/ 16 декабря 2011

Комментарии, сделанные другими, ссылаются на асинхронность метода fetch. Так что this.fetch() возвращается немедленно. Если вы отображаете представление сразу после this.fetch, коллекция все равно будет пустой.

Вы должны поместить что-то вроде этого в представление, которое отображает вашу коллекцию:

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