「次を読む」ボタンを押すとAJAXで次のリスト一覧を取得する。
アンド、取得し終わったらさらに次のページがあるのかどうかチェックして、なかったら「次を読む」ボタンを非表示にするってのをやった。
まずはCollection側で独自イベント登録
- var MyList = Backbone.Collection.extend({
- initialize: function(){
-
- this.on('nothingNext', this.myEvent)
- },
- load: function(){
-
- if(次のページがなかったら){
-
- this.trigger('nothingNext');
- }
- },
- myEvent: function(){
- console.log('俺独自のイベントだ');
- }
- });
- var mylist = new MyList();
var MyList = Backbone.Collection.extend({
initialize: function(){
//自分独自のイベントフックを登録
this.on('nothingNext', this.myEvent)
},
load: function(){
//何かを読み込む処理
if(次のページがなかったら){
//自分で作ったイベントを起動
this.trigger('nothingNext');
}
},
myEvent: function(){
console.log('俺独自のイベントだ');
}
});
var mylist = new MyList();
Viewも独自イベントに連動させる
- var Btn = Backbon.View.extend({
- collection: MyList,
- initialize: function(){
-
- this.collection.on('nothingNext', hideMe);
- },
- hideMe: function(){
- this.$el.hide();
- }
- });
var Btn = Backbon.View.extend({
collection: MyList,
initialize: function(){
//collectionの独自イベントが起動した時に一緒に動かしたいメソッドを登録
this.collection.on('nothingNext', hideMe);
},
hideMe: function(){
this.$el.hide();
}
});
CollectionをModelに変えてもできる