我有一个Backbone.PageableCollection ( @customers
),我想遍历它的模型。我尝试了很多事情——包括我认为显而易见的事情:
@customers.each (customer) ->
console.log customer
不幸的是,这会注销一些看起来像集合但其中没有模型数据的东西。我知道该集合已完全同步,因为当我注销时,@customers.models
我可以看到一组模型数据:
奇怪的是,如果我这样做:
_.each @customers.models, (customer) ->
console.log customer
我得到与上述相同的无用结果。
我错过了什么?
更新:
仔细观察console.log customer
两种方法中记录的对象,这看起来像是一个具有未填充属性的模型。这很奇怪,因为日志记录@customers.models
显示了一系列具有完全填充属性的模型。此外,each
循环只执行一次。
更新 2:
我按照以下 agconti 的建议尝试了以下操作:
@customers.each (@customers, c) ->
console.log @customers, c
编译为:
return this.customers.each((function(_this) {
return function(customers, c) {
_this.customers = customers;
return console.log(_this.customer, c);
};
})(this));
和日志undefined
和一个0
.
更新 3:
如果我设置:
window.customers = @customers
然后在控制台中输入:
_.each(customers.models, function (customer) { return console.log(customer)});
我得到了所有客户模型的日志。我现在真的很迷茫...
更新 4:
我已将其缩小到时间问题。我在集合同步后运行此代码,但似乎集合中的模型解析稍后发生。