我是新來的骨幹和木偶。現在我試圖用compositeview的marionettejs實現分頁。下面是我的代碼,這裏發生的情況是,當通過我的自定義尋呼機完成新的提取時,現有數據將被替換爲新數據集而不是附加數據。請幫我解決這個問題!提前致謝。我們如何使用骨幹牽線木偶複合視圖進行分頁?
define(['text!/Templates/projects/_GroupItem.html', 'collections/projects/groups'], function (ProjectGroupsTmpl, GroupCollection) {
var GroupItemView = Backbone.Marionette.ItemView.extend({
tagName: 'li',
template: _.template(ProjectGroupsTmpl)
});
var CompositeView = Backbone.Marionette.CompositeView.extend({
template: _.template("<ul id='ulgroups' ></ul>"),
itemView: GroupItemView,
itemViewContainer: '#ulgroups',
initialize: function (params) {
this.isLoading = false;
this.ProjectID = params.id;
this.collection = new GroupCollection();
this.getData();
var self = this;
$(window).scroll(function() {
self.checkScroll();
});
},
getData: function() {
var that = this;
this.isLoading = true;
this.collection.fetch({
data: { ProjectID: this.ProjectID },
success: function (collection, response, options) {
that.isLoading = false;
}
});
},
checkScroll: function() {
var triggerPoint = 100; // 100px from the bottom
if (!this.isLoading && $(window).scrollTop() + $(window).height() + triggerPoint > $(document).height()) {
this.collection.page += 1; // Load next page
this.getData();
}
},
appendHtml: function (collectionView, itemView, index) {
$(this.itemViewContainer).append(itemView.el);
}
});
return CompositeView;
});
感謝史密斯,但你有建議,如果要視圖本身裏面取收集? – 2014-11-25 04:55:28
您仍然可以從主集合(GroupCollection)獲取模型。只是您將從每次獲取將相關模型添加到臨時集合中。臨時收集將開始爲空,並添加到每個新的「拉」數據。合理?話雖如此,我仍然建議創建一個控制器來管理數據請求和視圖創建。使IMO更加清晰地分離問題。 – 2014-11-25 18:15:43