(バックボーン 0.9.10 を使用)
ユーザーがボタンをクリックしてモーダルビューを表示できるリストビューがあります。リスト ビューには、リストに含まれるアイテムの数を示すカウンターがあります。モーダル ビューでボタンをクリックすると、create
両方のビューに渡されるコレクションで実行されます。これによりadd
、リスト ビューでイベントが発生し、次の関数が実行されます。
renderCount: function () {
// Container for model count
var $num = this.$el.find('.num');
if ($num.length > 0) {
// 'count' is a value returned from a service that
// always contains the total amount of models in the
// collection. This is necessary as I use a form of
// pagination. It's essentially the same as
// this.collection.length had it returned all models
// at once.
$num.html(this.collection.count);
}
}
ただし、add
コレクションがモデル数を更新する機会を得る前に、(ドキュメントによると、そうあるべきであるように) すぐに起動されるようです。調べてみましsync
たが、あまり効果がないようです。
を呼び出す前に、コレクションが更新されていることを確認するにはどうすればよいrenderCount
ですか?
参考までに、リストビューinitialize
機能は次のとおりです。
initialize: function (options) {
this.collection = options.collection;
this.listenTo(this.collection, 'add remove reset', this.renderCount);
this.render();
}
EDIT:success
モーダルビューで
コレクションを再取得するのを忘れていたことがわかりました。