Javascript 如何将动态复选框值绑定到对象上的淘汰ObservalArray?
我已经在这里发布了我的评论 如何将AllCustomers数组转换/映射到另一个Customer对象数组 我需要将选中的复选框对象推入self.Customer(),{CustomerType,checked} 然后,我将遍历Customer对象数组的列表,并返回一个包含所有已检查客户的数组——self.checkedcustersJavascript 如何将动态复选框值绑定到对象上的淘汰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
功能客户(类型,选中)
{
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,我已经更新了我的代码。我的方向对吗?谢谢