实际上我的代码中有2个问题,这是指向 jsFiddle Not Working Demo 的链接。
问题1:我无法将任何项目从一个列表拖放到另一个列表
问题2:拖放操作完成后,如何从阵列中更改我的特定项目?
这是我的可观察数组:
self.customExportFileArray = ko.observableArray([
{
"IncludeInExportConversionTypesSelectList" :
[
{
"ConversionGroupID" : "1",
"Title" : "Quote Start - Auto"
},
{
"ConversionGroupID" : "2",
"Title" : "Quote Finish - Auto"
},
{
"ConversionGroupID" : "3",
"Title" : "Sales Data"
}
],
"ChooseFromConversionTypesSelectList" : [],
"FileName" : "Template1"
},
{
"IncludeInExportConversionTypesSelectList":
[
{
"ConversionGroupID" : "1",
"Title" : "Quote Start - Auto"
},
{
"ConversionGroupID" : "2",
"Title" : "Sales Data"
}
],
"ChooseFromConversionTypesSelectList":
[
{
"Title" : "Quote Finish - Auto"
}
],
"FileName" : "Template2"
}
]);
因此,例如,我从下拉列表中选择了“Template1”,selectedTemplate
属性将从数组中获取第二项,然后我将项目从左侧移动到右侧,反之亦然IncludeInExportConversionTypesSelectList
(列表的右侧) )和ChooseFromConversionTypesSelectList
(列表的左侧)数组应该更新,点击Grab all data from specific template
按钮它应该返回更新的特定数组(根据预先选择的下拉控件)。
有谁知道我做错了什么?因为我在添加下拉列表之前有工作代码。
任何帮助都将受到高度赞赏
提前致谢。
答案 0 :(得分:1)
可排序插件期望拖动项目的数组是observableArrays。在您的情况下,只有您的整体数组是可观察的。
您可能希望确保单个数组是可观察的。以下是一个示例:http://jsfiddle.net/rniemeyer/bSuJx/
self.customExportFileArray = ko.observableArray([
{
"IncludeInExportConversionTypesSelectList" : ko.observableArray(
[
{
"ConversionGroupID" : "1",
"Title" : "Quote Start - Auto"
},
{
"ConversionGroupID" : "2",
"Title" : "Quote Finish - Auto"
},
{
"ConversionGroupID" : "3",
"Title" : "Sales Data"
}
]),
"ChooseFromConversionTypesSelectList" : ko.observableArray([]),
"FileName" : "Template1"
},
{
"IncludeInExportConversionTypesSelectList": ko.observableArray(
[
{
"ConversionGroupID" : "1",
"Title" : "Quote Start - Auto"
},
{
"ConversionGroupID" : "2",
"Title" : "Sales Data"
}
]),
"ChooseFromConversionTypesSelectList": ko.observableArray(
[
{
"Title" : "Quote Finish - Auto"
}
]),
"FileName" : "Template2"
}
]);
如果这表示来自服务器的数据,那么在应用绑定之前,您可能需要处理它以生成observableArrays。