0

我有一个使用 Backbone.js 控制的元素列表,其中包含列表视图以及每个元素的视图,每个li元素都控制一个模型。我想从 jQuery UI http://jqueryui.com/demos/sortable/实现可排序插件,并能够根据模型的位置更新模型中的值。有没有办法从视图中做到这一点,还是我需要在这里采取不同的方法?

4

1 回答 1

0

假设您使用集合来存储这些模型,只要您的comparator函数代表您需要的排序顺序,您就拥有在集合中获取模型“顺序”所需的所有信息。

您可以像这样在集合中获取特定模型的索引:

var idx = collectionInstance.indexOf(collectionInstance.get('itemId'))

我还不能说我已经将 jQuery Sortable 与 Backbone 结合使用,因为我一直认为更改比较器和应用排序可以满足我的要求。

我特别喜欢以下实现:Proper way to sort abone.js collection on the fly

从 Backbone 文档中,我们知道在集合上手动触发排序:

强制集合重新排序。在正常情况下,您不需要调用它,因为具有比较器函数的集合将始终以正确的排序顺序保持自身。调用 sort 会触发集合的“reset”事件,除非通过传递 {silent: true}

于 2012-05-15T17:00:58.837 回答