【问题标题】:jQuery UI's sortable and backbone.jsjQuery UI 的 sortable 和bone.js
【发布时间】:2011-07-05 21:37:00
【问题描述】:

我有一个我一直在处理的backbone.js 项目,我已经对其进行了设置,以便我可以在jQuery UI 的帮助下拖放行(它们是backbone.js 模型)更新 事件我能够让我的模型重新计算它们的顺序,一切都很好。我想知道是否有人新的更清洁的方法来实现这一点。我在下面包含了一些代码。

$( ".section" ).sortable({items: 'tr', update: function()
{
    console.log("Event Fire!");
    secv.mySort();
}});

secv 是我持有表格的模型的视图。 mySort 函数遍历并计算出元素的顺序并进行必要的更新。

【问题讨论】:

  • 你不喜欢这个解决方案的什么地方?我认为它在没有大量代码的情况下工作得相当好。这也是我现在使用主干实现排序的方式。
  • 另一个更复杂的选项在这里:stackoverflow.com/questions/10147969/…

标签: jquery-ui backbone.js


【解决方案1】:

我假设您正在视图中设置集合属性,也许是在初始化方法中。在同样的方法中,您应该将视图方法绑定到集合的“更改”或“刷新”事件。这个方法会简单地重绘排序的集合;如有必要,在这样做之前对集合进行排序。

理论上,您的模型可能会使用其新位置进行自我更新,如果集合具有比较器功能,则集合会自动恢复。如果是这种情况,绑定到集合的“刷新”事件将触发上述方法,该方法只需要重新渲染视图的集合部分。

【讨论】:

  • 您还可以在排序之前为集合分配新的比较器。 collection.comparator(function(model){return model.get('some_property');}); collection.sort(); 它将触发集合 reset 事件,您可以将其绑定到呈现集合视图。
  • 这如何回答原始问题?问题是视图(DOM)是在模型集合之前排列的,而不是相反。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2011-07-26
  • 1970-01-01
  • 2019-07-07
  • 2011-10-11
相关资源
最近更新 更多