İki görünüm (sayfalama ve görüntüleme sayısı) ve koleksiyonum (postscollection) var diyelim. Ne zaman paginationview .next düğmesine tıklatıldığında, postcollection bir sonraki işlevi çağırıyorum ve post collection yeni sayfanın postaları sunucudan getiriyor (kod basitleştirilmiştir). Şimdi posta gönderiminde yalnızca son sayfada bulunan yayınları görüntülemek istiyorum. Koleksiyonumdaki 'eklenti' olayına bakışımı bağlamak istemiyorum, çünkü koleksiyona bir şeyin 'eklendiği' ile ilgili daha fazla vaka var. 'Renderlist' işlevini postview'imde görmek istiyorum, postcollection'ımda 'nextPage' işlevi çağrıldığında sadece çağrılacak. Bunları birlikte işlevlere nasıl bağlarım?Omurga Özel Olaylar
// paginationview
var PaginationView = Backbone.View.extend({
events:{
'click a.next' : 'next',
},
next: function() {
this.collection.nextPage();
return false;
}
});
// toplama
var PostsCollection = Backbone.Collection.extend({
model: model,
initialize: function() {
_.bindAll(this, 'parse', 'url', 'pageInfo', 'nextPage', 'previousPage');
this.page = 1;
this.fetch();
},
parse: function(response) {
console.log(response);
this.page = response.page;
this.perPage = response.perPage;
this.total = response.total;
this.noofpages =response.noofpages;
return response.posts;
},
url: function() {
return '/tweet/' + '?' + $.param({page: this.page});
},
nextPage: function() {
console.log("next page is called");
this.page = this.page + 1;
this.fetch();
},
// postsview
var PostsView = Backbone.View.extend({
events:{
'click #testbutton' : 'test',
'click #allbutton' : 'render',
},
initialize: function() {
this.listenTo(this.collection, 'add', this.addOne);
},
render: function() {
$(".maincontainer").html("");
this.collection.forEach(this.addOne, this);
return this;
},
renderlist: function(){
$(".maincontainer").html("");
this.collection.forEach(this.addOne, this);
},
addOne: function(post) {
var post = new postView({model : post});
post.render();
this.$el.prepend(post.el);
},
});
'this.tr' olduğunu not etmek iyi bir fikirdir. igger ('nextpage'); 'büyük olasılıkla getirme için başarı işleyicisinde olmalıdır. –
Bu Andrew tarafından ne demek istiyorsun? sadece getirme başarılı olursa ne olur? aksi halde getlisteden önce render listesi çağrılabilir mi? –
Evet, Andrew haklı. Getirme bitene kadar beklemeliyiz. Bu yüzden olayı başarabiliriz. –