knockout.js自定义绑定foreach-使用ID
我想创建一个由Soid过滤的列表 基本上我有两种清单:1个员工,2个交易knockout.js自定义绑定foreach-使用ID,knockout.js,ko-custom-binding,Knockout.js,Ko Custom Binding,我想创建一个由Soid过滤的列表 基本上我有两种清单:1个员工,2个交易 Employees got EmpID and Name Transactions got `ID` , EmpID , and TransDate 我需要这样的过滤器:databind=“foreach:$data.Transactions(EmpID)”>( 可以使用自定义绑定吗 像这样的 <table> <tbody data-bind="foreach: Employees, v
Employees got EmpID and Name
Transactions got `ID` , EmpID , and TransDate
我需要这样的过滤器:databind=“foreach:$data.Transactions(EmpID)”>
(
可以使用自定义绑定吗
像这样的
<table>
<tbody data-bind="foreach: Employees, visible: Employees().length > 0">
<tr>
<td class="centerdata" data-bind="text: ID"></td>
<td class="centerdata" data-bind="text: Name"></td>
<td>
<table>
<tbody data-bind="foreach: $data.Transactions">
<tr>
<td data-bind="text:TransDate"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
</table>
这就是我所累的:所以,这将起作用:
var employees = [{EmpID : 0, Name: 'John' }];
var transactions = [{ID : 1, TransDate: '1/1/2013', EmployeeID :0}];
ko.utils.arrayForEach(employees , function(e) {
e.Transactions = ko.utils.arrayFilter(transactions, function(t){
return t.EmployeeID == e.EmpID;
});
});
var VM = function(){
var self = this;
self.Employees = employees;
self.getEmployee = function(empID) {
for(var index = 0; index; self.Employees.length; index++ ) {
if(self.Employees[index].EmpID == empID)
return self.Employees[index]
}
return null;
};
};
var vm = new VM();
正如您所看到的,这将遍历员工并创建一个包含所有所属事务的事务属性
并且认为:
<table>
<tbody data-bind="foreach: Employees, visible: Employees.length > 0">
<tr>
<td class="centerdata" data-bind="text: ID"></td>
<td class="centerdata" data-bind="text: Name"></td>
<td>
<table>
<tbody data-bind="foreach: $data.Transactions">
<tr>
<td data-bind="text:TransDate"></td>
</tr>
</tbody>
</table>
</td>
</tr>
</tbody>
您不需要创建自定义绑定来按员工对事务进行分组。
因为foreach和arrayFilter已经完成了分组过程。
因此,没有必要通过EmpID。
实际上,分组过程中唯一要做的事情就是重构员工(作为根)和事务(作为叶)的层次结构
我希望这会有所帮助。员工和交易之间的联系是什么?员工有一个交易集合,或者交易有一个EmployeeID?您可以共享一个视图模型示例吗?交易有一个EmployeeID谢谢,但我想了解更多信息,我需要创建custombinding吗?我如何从数据bindin传递EmpIDGUI?我修改了我的帖子来回答你的问题。好的,但是可以使用自定义绑定传递empID吗?如果可以,那么将非常感谢帮助:)empID应该从哪里来?你能写一个你想要使用的自定义绑定吗?好的,类似这样: