Опрос коллекции с помощью Backbone.js

Я пытаюсь поддерживать коллекцию Backbone.js в актуальном состоянии с учетом того, что происходит на сервере.

Мой код похож на следующий:

var Comment = Backbone.Model.extend({});
var CommentCollection = Backbone.Collection.extend({
    model: Comment
});

var CommentView = Backbone.View.extend({ /* ... */ });
var CommentListView = Backbone.View.extend({
    initialize: function () {
        _.bindAll(this, 'addOne', 'addAll');

        this.collection.bind('add', this.addOne);
        this.collection.bind('refresh', this.addAll);
    },
    addOne: function (item) {
        var view = new CommentView({model: item});
        $(this.el).append(view.render().el);
    },
    addAll: function () {
        this.collection.each(this.addOne);
    }
});

var comments = new CommentCollection;
setInterval(function () {
    comments.fetch();
}, 5000);

Что происходит? при получении комментариев вызывается refresh , те же комментарии в нижней части CommentListView - чего я и ожидал от приведенного выше кода.

What I ' Я хочу знать, как лучше всего «обновить» представление без потери «локального состояния».

23
задан Julien 11 May 2011 в 19:36
поделиться