在获取集合后,我在最后添加“假”模型,以使我的Flex网格正常工作。对这个解决方案不满意,但找不到更好的解决方案。
我希望支持将更多的模型加载到集合中,所以,在同步时,我删除了旧的假模型(否则它们会在集合的中间结束),然后在最后重新添加它们。
onSync: ->
modelsToRemove = @where({id: 0})
console.log modelsToRemove, modelsToRemove.length
// this prints:
// [child, child, child, child, child] 5
// which is expected
@remove(modelsToRemove)
modelsToRemove2 = @where({id: 0})
console.log modelsToRemove2, modelsToRemove2.length
// this should print
// [] 0
// right?
// but it prints:
// [child] 1
// and the cid of the child is actually present in the first list...
@add({}) for [1..@fakeCount]
为什么remove
除了1个假模型外,所有假模型都被删除了?
编辑:通过使用cid
s使其正常工作。
modelsToRemove = _.map @where({id: 0}), (m, i) -> { cid: m.cid }
@remove(modelsToRemove)
@add({}) for [1..@fakeCount]
问题似乎与以下事实有关:除了cid之外,几款车型完全相同?
1条答案
按热度按时间rsaldnfx1#
事实上,所有这些假模型都有相同的id打破了
#get
。在Github问题上给我的解决方案是给他们不同的id,和一个
fake
属性。