【问题标题】:using a draggable as a source list links items added to a sortable together?使用可拖动作为源列表将添加到可排序的项目链接在一起?
【发布时间】:2012-09-21 07:33:43
【问题描述】:

请原谅一起被黑的样本

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

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

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

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

【问题讨论】:

  • 1) 您的代码不是真正意义上的 OOP 2) 您的 UI 似乎存在缺陷,因为您将同一个学生添加到多个表中 3) 您似乎没有任何直接的方法管理模型中的学生和表格信息。我很想回答你的问题,但这不是“单一答案”类型的问题。在足够短的时间内分析它有太多错误,让我有精力在我拥有的一切之上去做。抱歉,@Marc。

标签: knockout.js knockout-sortable


【解决方案1】:

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

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

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

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

【讨论】:

  • 谢谢你。正是我遇到的问题。
猜你喜欢
  • 2010-10-16
  • 1970-01-01
  • 2010-10-18
  • 1970-01-01
  • 2011-12-10
  • 1970-01-01
  • 1970-01-01
  • 2013-10-26
  • 2012-12-16
相关资源
最近更新 更多