1

原谅一起被黑的样本

http://jsfiddle.net/marcmeans/SqrBf/1/

如果您将可用学生中的一个项目添加到 Table3 两次,然后尝试将一个从 Table3 移动到 Table2,两者都会消失。

我还注意到,当我为添加到 Table3 的项目生成新的 guid 时,arg.item 似乎是对源列表中项目的引用,而不是克隆。这会在淘汰赛中创建一个链接,如果我更新一个链接,我会全部更新。

我假设我在这里做错了什么,但我很难弄清楚是什么。

4

1 回答 1

2

插件中的draggable功能sortable当前检查您的对象是否具有clone功能。如果是,那么它使用调用的结果clone作为新项目。如果不是,则它使用该项目本身。

在您的小提琴中,您正在使用映射插件,因此一种选择是传递映射选项,通过添加clone方法来自定义创建学生的方式。

这是一个更新的小提琴,它传递映射选项并通过执行克隆对象ko.mapping.fromJS(ko.mapping.toJS(this))

http://jsfiddle.net/rniemeyer/SqrBf/3/

于 2012-09-20T23:33:43.963 回答