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

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

最佳答案

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

让我们以此为起点:

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


如果列表很小(在数百个项目中),则可以随着位置的变化而更新位置,因此,如果将“项目B”移到“项目C”之后,则可以更新项目B和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 },
]


有帮助吗?

10-06 05:26