我需要将一个值传递给listView.template
,以便了解有关collection.length
.
我认为一种选择是重新定义 serializeData 方法以便以这种方式传递参数。
var ListView = Marionette.CompositeView.extend({
initialize: function () {
this.collection.on('reset', this.serializeData, this);
this.collection.on('remove', this.serializeData, this);
this.collection.on('add', this.serializeData, this);
},
serializeData: function () {
console.log(this.collection.length);
return {
has_tasks: this.collection.length > 0
};
},
// other codes
});
当我开始时app
尚未collection
获取,所以:
1.a) collection.legth = 0
2.b) 模板has_tasks = false
按预期获得。
2.a) 在 fetch 之后collection.length is > 0
,
2.b)serializeData
被调用,所以它把has_tasks = true
,
2.c) 模板似乎没有被渲染,因为它维护has_tasks = false
任何想法,因为2.c
?