(使用骨干网 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();
}
编辑:
原来我忘记success
在模式视图中重新获取集合。