Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 如何将动态复选框值绑定到对象上的淘汰ObservalArray?_Javascript_Jquery_Knockout.js - Fatal编程技术网

Javascript 如何将动态复选框值绑定到对象上的淘汰ObservalArray?

Javascript 如何将动态复选框值绑定到对象上的淘汰ObservalArray?,javascript,jquery,knockout.js,Javascript,Jquery,Knockout.js,我已经在这里发布了我的评论 如何将AllCustomers数组转换/映射到另一个Customer对象数组 我需要将选中的复选框对象推入self.Customer(),{CustomerType,checked} 然后,我将遍历Customer对象数组的列表,并返回一个包含所有已检查客户的数组——self.checkedcusters 功能客户(类型,选中) { var self=这个; self.CustomerType=ko.observable(类型); self.IsChecked=ko

我已经在这里发布了我的评论

如何将AllCustomers数组转换/映射到另一个Customer对象数组

我需要将选中的复选框对象推入self.Customer(),{CustomerType,checked}

然后,我将遍历Customer对象数组的列表,并返回一个包含所有已检查客户的数组——self.checkedcusters

功能客户(类型,选中)
{
var self=这个;
self.CustomerType=ko.observable(类型);
self.IsChecked=ko.可观察(选中| |假);
}
函数VM()
{
var self=这个;
//动态填充-用于测试pupos
self.AllCustomers=ko.array([
{ 
代码:“001”,
名称:'Customer 1'
},
{ 
代码:“002”,
姓名:'Customer 2'
},
{ 
代码:“003”,
姓名:'Customer 3'
},
]);
self.selectedCustomers=ko.observearray([]);
self.Customer=ko.observearray([]);
//如何将AllCustomers数组转换为Customer对象数组??
//我需要将选中的对象推入self.Customer(),{CustomerType,checked}
//取消下面的注释-仅用于测试通过客户对象的循环
/*
self.Customer=ko.observearray([
新客户(“001”),
新客户(“002”)
]);
*/
//此数组应返回选中该框的所有客户
self.CheckedCustomers=ko.computed(函数()
{
var selectedCustomers=[];
ko.utils.arrayForEach(self.Customer(),函数(Customer){
if(customer.IsChecked())
选择客户。推送(客户);
});
返回选定的客户;
});
}
应用绑定(新VM())


所选客户代码 复选框是?? ,
您正在尝试将具有属性的对象
code
name
转换为具有属性的对象
CustomerType
IsChecked
。我假设您希望在创建新的
Customer
对象时将
code
映射到
CustomerType

这里有一个工作的JSFIDLE,或多或少满足您的需求

添加了以下代码:

self.selectedCustomers.subscribe(function() {
  self.Customer.removeAll();
  ko.utils.arrayForEach(self.selectedCustomers(), function(item) {
      self.Customer.push(new Customer(item, true));
  });
});

首先,在Customer函数中,您将IsChecked硬编码为false。您希望基于选中的参数设置该值。这应该会让你对你想要实现的东西有一点了解,因为这是一个主要的错误。修复这个问题,更新fiddle,并发布进一步的问题。@BivoKasaju,我已经更新了我的代码。我的方向对吗?谢谢