在获取集合后,我在最后添加“假”模型,以使我的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?
答案 0 :(得分:0)
所有这些假模型具有相同的id的事实破坏了#get
。
在Github Issues上给我的解决方案是为他们提供不同的ID,以及一个fake
属性。