首先对不起我的英语不好!
无论如何,我正在尝试基于 Knockout JS 和 Jquery UI 制作一个简单的任务管理器。经过一番研究,我发现了一个小插件,可以帮助将 KO 与 JqueryUi 的 sortable 连接起来,你可以在这里阅读:http ://www.knockmeout.net/2012/02/revisiting-dragging-dropping-and.html
该插件可以很好地更新可观察数组的顺序,但我还需要根据元素在数组中的位置刷新元素的一些值。我尝试在每次排序后更新整个数组,但我注意到一个奇怪的行为:虽然 UI 保持不变,但如果我将数组发送到 JSON,它会使用正确的值进行更新!
你可以在这里找到我的代码片段:http: //jsfiddle.net/ingro/mz3MK/
尝试移动 Sortable 列表中的一些元素,然后查看 UI 与使用“打印”按钮显示的值之间的差异。
编辑:尝试将第一个元素(test#1)拉到可排序列表的底部。元素的属性“时间”保持不变(07:00)。现在将它带到可排序列表的第二个位置,您会注意到属性“时间”变成了“10:00”!实际上,UI 仅在您拖动某些东西时才会刷新,并且只有被拖动的元素才会刷新到拖动之前的状态。但是如果你打印数组的值,你可以看到它总是被刷新:\
感谢任何可以帮助我的人!