Backbone.js 如何保持集合在主干中有序?

Backbone.js 如何保持集合在主干中有序?,backbone.js,Backbone.js,我有一个集合,它使用comparator函数对其模型进行排序。 这些模型有一个用于对其进行排序的rank属性 在我的模型视图中,我有一个按钮,用于按1升级和降级秩属性。通过监听collections change事件,每次更改模型的rank属性时,我都可以调用“sort”,从而对列表重新排序 问题是保持秩的唯一性-现在我只是更改单个模型的秩值,这不会影响其他模型。 例如: A项,第1级 B项,第2级 C项,第3级 致: A项,第1级 B项,排名1 C项,第3级 是否有一种智能(主干)方式来改变其

我有一个集合,它使用comparator函数对其模型进行排序。 这些模型有一个用于对其进行排序的rank属性

在我的模型视图中,我有一个按钮,用于按1升级和降级秩属性。通过监听collections change事件,每次更改模型的rank属性时,我都可以调用“sort”,从而对列表重新排序

问题是保持秩的唯一性-现在我只是更改单个模型的秩值,这不会影响其他模型。 例如:

  • A项,第1级
  • B项,第2级
  • C项,第3级
  • 致:

  • A项,第1级
  • B项,排名1
  • C项,第3级
  • 是否有一种智能(主干)方式来改变其他型号的等级


    如果需要手动完成,那么什么是好的策略?我目前正在从模型的视图更改模型,并听取集合视图中的更改,因此没有明显的方法影响相邻模型的排名

    困惑;)。你会改变排名还是有人会使用该应用?这似乎有点像向上投票/向下投票,是吗?如果你无法控制等级,为什么要使等级唯一?等级应该是唯一的,因为我不希望项目A和项目B的等级都为1。我的想法是,我有一个项目列表,应用程序的用户可以“向上/向下投票”。但它们应该始终只有一个正确的顺序,即现在两个项目可以共享一个等级。然后删除比较器。当排序没有发生时,为什么需要一个呢。否则,请不要在sortI期间订阅
    重置
    事件。我不明白移除比较器会有什么帮助?我确实希望这些项目按排名顺序列出。同时,我提出了一个服务器端解决方案:当排名向上或向下时,模型被保存。然后服务器对列表进行处理,主干重新获取集合,生成正确排序的列表。事实上,我不再确定在客户端这样做是否有意义。毕竟你只能保存单个模型而不能保存集合,对吗?