Knockout-sortable和drop项会抛出控制台错误

时间:2013-03-21 22:08:19

标签: knockout.js knockout-sortable

目的
我的目标是创建一个页面,用户可以将一组预定义的列名称从已加载的文件拖到列标题中。该页面允许他们将静态标题拖动到文件标题中,以便在我们匹配它们之前映射它们到我们的数据库。

问题
我的所有掉落都会引发控制台错误:
  - 丢弃相同的数组抛出:
Uncaught TypeError: object is not a function
  - 删除文件头中的可用标头会抛出:
Uncaught TypeError: Object [object Array] has no method 'remove'
  - 从文件标题中删除回可用的投掷:
Uncaught TypeError: object is not a function

示例
这是我正在使用的jsfiddle:http://jsfiddle.net/micah0152/PrSWu/1/

更多细节
我希望能够拖动一个可用的标题并将其放在列的上方。然后,当用户满意时,我需要获得两者之间的关联(并单击一个尚不存在的“保存”按钮。)

可悲的是,我一开始就被困住了。我希望这是一个简单的问题,因为我是淘汰赛的新手。

提前致谢。

1 个答案:

答案 0 :(得分:2)

需要在ko.observableArray中包装可用的标题 - 花了一些时间来找到你的错误!

self.availableHeaders = ko.observableArray([
    new MappedHeader("Company"), 
    new MappedHeader("Address 1"), 
    new MappedHeader("Address 2"), 
    new MappedHeader("City"), 
    new MappedHeader("State"), 
    new MappedHeader("Zip"), 
    new MappedHeader("Country")
]);

编辑:错误是说sourceParent,即移动对象的容器,没有remove()函数。它没有remove函数,因为它不是ko.observableArray。所以为了解决这个问题,我用ko.observableArray()包装了数组,现在它具有所有内置的KO功能。