所以我正在创建一个项目,人们可以在任务列表上一起工作。我目前的同步方法非常糟糕,所以我一直想转移到GoInstant一段时间了。当我环顾四周时,我发现了GoAngular,它似乎提供了一种非常甜蜜、直观的方式来将数据和显示绑定在一起。然而,我不知道GoAngular是否能胜任同时处理多人添加、删除和重新排序项目的任务。
你知道如何让GoAngular支持重新排序吗?重要的是,更新是增量的,而不是每次都重新创建整个列表的DOM。
这真的取决于你的列表的大小,你可以采取两种方法(都不是完美的),都涉及到添加一个position
属性到你的GoAngular模型(或创建一个模型专门跟踪位置):
让我们把这个作为我们的起点:
[
{ title: 'Item A', position: 1 },
{ title: 'Item B', position: 2 },
{ title: 'Item C', position: 3 },
{ title: 'Item D', position: 4 },
]
如果列表很小(在数百个项目中),您可以在它们变化时更新位置,因此,如果'项目B'在'项目C'之后移动,您将更新项目B的位置(使用$set
);C:
[
{ title: 'Item A', position: 1 },
{ title: 'Item C', position: 2 },
{ title: 'Item B', position: 3 },
{ title: 'Item D', position: 4 },
]
或者你可以在两个位置的中间插入一个项,这在大列表中更实用。如果"项目B"再次移动到"项目C"之后,您将只更新"项目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 },
]
有帮助吗?