我有一个使用Backbone.js控制的元素列表,其中包含列表视图以及每个li
元素的视图,每个元素都控制一个模型。我想从jQuery UI http://jqueryui.com/demos/sortable/实现可排序插件,并能够根据模型的位置更新模型中的值。有没有办法在视图中执行此操作,或者我需要采取不同的方法吗?
答案 0 :(得分:0)
假设您正在使用集合来存储这些模型,那么在集合中您可以获得获取“订单”所需的所有信息。只要您的comparator
函数代表您需要的排序顺序,就可以看到集合中的模型。
您可以在这样的集合中获取特定模型的索引:
var idx = collectionInstance.indexOf(collectionInstance.get('itemId'))
我不能说我已经将jQuery Sortable与Backbone结合使用了,因为我一直觉得改变比较器并应用sort就能满足我的要求。
我特别喜欢以下实现:Proper way to sort a backbone.js collection on the fly。
从Backbone文档我们知道在集合上手动触发排序:
强制集合重新排序。你不需要打电话给你 在正常情况下,作为具有比较器功能的集合 将始终保持适当的排序顺序。调用排序 触发收集"重置"事件,除非通过传递沉默 {沉默:真实}