knockout.js - 可 knockout 排序和掉落元素会引发控制台错误

标签 knockout.js knockout-sortable

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

问题
我的所有掉落都会引发控制台错误:
- 放入同一个数组会抛出:
未捕获类型错误:对象不是函数
- 在文件头中删除可用头会抛出:
未捕获类型错误:对象[对象数组]没有方法“删除”
- 从文件头返回到可用的抛出:
未捕获类型错误:对象不是函数

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

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

可悲的是,我一开始就陷入困境。我希望这是一个简单的问题,因为我对 knockout 还很陌生。

提前致谢。

最佳答案

需要将可用 header 包装在 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() 函数。它没有删除函数,因为它不是 ko.observableArray。因此,为了解决这个问题,我用 ko.observableArray() 包装了数组,现在它具有所有内置的 KO 功能。

关于knockout.js - 可 knockout 排序和掉落元素会引发控制台错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15559149/

相关文章:

javascript - Knockout click binding - 阻止除被点击元素之外的所有元素的绑定(bind)

javascript - 需要来自捆绑库的单个模块(即 jquery-ui)

javascript - 如何使用 knockout.js 更新模型更改的 View ?

javascript - knockoutjs 自定义绑定(bind)预处理方法和 addBindingCallback?

javascript - 在单个 View 中使用多个模板和绑定(bind)

javascript - Knockout 和 JQuery UI 拖放表单生成器

javascript - Knockout-Sortable horizo​​ntal list 在拖动项目时垂直推送项目

javascript - 传入一个 observableArray 作为函数参数

knockout.js - knockout "if"绑定(bind)不适用于可排序列表中的表达式?

javascript - 如何忽略用户未完成的更改?