1

私は無限のページネーションに取り組んでいます(http://addyosmani.github.io/backbone.paginator/examples/infinite-paging/index.html

ページネーション ビューに CompositeView を使用しています。

そして、私は次の問題を抱えています。データの新しい部分を取得するたびに、ページネーターのコレクションは古いデータを削除して新しいデータを追加するため、CompositeView は古い結果を再レンダリングして消去します。

この問題を解決するにはどうすればよいですか? 再レンダリング機能を無効にすることを考えていますが、適切に行うにはどうすればよいですか?

前もって感謝します!

var BaseFeedChronoCompositeView = Backbone.Marionette.CompositeView.extend({
    tagName: "div",
    template: _.template(ChronoFeedComposite_html),
    itemView: Article,                
    events: {
        'click #loadmore-button-manual': function (e) {
            e.preventDefault();
            this.collection.requestNextPage();
    },

    appendHtml: function (collectionView, itemView, index) {
        collectionView.$("#chronoFeed-content").append(itemView.$el);
    }
});

これが基本的なコードです。this.collection.requestNextPage() - データのリクエストをサーバーに送信します。データを取得した後、this.collection は古いモデルを削除し、新しいモデルを追加します。

複合ビューはこれらのイベントをリッスンし、古いモデルの itemView を削除し、新しいモデルの itemView を追加します。

そして、古い itemViews を削除しないために CompositeView が必要です。

4

1 に答える 1