1

所以我正在创建一个项目,人们可以在任务列表上一起工作。我目前的同步方法很糟糕,所以我一直想转移到 GoInstant 一段时间。当我环顾四周时,我发现了 GoAngular,它似乎提供了一种非常贴心、直观的方式来将数据和显示绑定在一起。但是我不知道 GoAngular 是否能胜任处理多人同时添加删除和重新排序项目的任务。

你知道让 GoAngular 支持重新排序的方法吗?重要的是更新是增量的,而不是每次都重新创建整个列表的 DOM。

4

1 回答 1

1

这实际上取决于您的列表的大小,您可以采用两种方法(都不完美),都涉及向position您的 GoAngular 模型添加一个属性(或创建一个专门用于跟踪位置的模型):

让我们以此为出发点:

[
 { title: 'Item A', position: 1 },
 { title: 'Item B', position: 2 },
 { title: 'Item C', position: 3 },
 { title: 'Item D', position: 4 },
]

如果列表很小(数百个项目),您可以在位置更改时更新位置,因此如果“项目 B”在“项目 C”之后移动,您将更新$set项目 B 和 C 的位置(使用 ):

[
 { title: 'Item A', position: 1 },
 { title: 'Item C', position: 2 },
 { title: 'Item B', position: 3 },
 { title: 'Item D', position: 4 },
]

或者,您可以在两个位置的中间插入一个项目,这在大型列表中更实用。如果在“项目 C”之后再次移动“项目 B”,您将只更新“项目 B”的位置。在此示例中,它将是 (3+4) / 2 = 3.5:

[
 { title: 'Item A', position: 1 },
 { title: 'Item C', position: 3 },
 { title: 'Item B', position: 3.5 },
 { title: 'Item D', position: 4 },
]

这有帮助吗?

于 2014-04-02T13:48:51.430 回答