knockout中foreach双重嵌套

本文介绍了一种使用Knockout.js实现动态表格数据加载的方法。该方法可以处理不确定数量的表头和行数据,并通过初始化item数组的方式将数据插入到表格中。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

在开发过程中,一个需求是后台传输table数据,分为header和data两部分,header代表表头,data是json对象,代表每个字段的具体值。table是个json数组。

问题是:header代表的表头列数不定,data代表的行数也不定,要实现向表格添加数据。

解决方案:

html代码:

<table>
     <thead> 
            <tr data-bind="foreach:Header">
             	<th data-bind="text:header"></th>
           </tr>
    </thead>
    <tbody data-bind="foreach:{data:Order, as:'order'}">
         <tr data-bind="foreach:{data:order.items,as:'item'}">
              <td data-bind="text:item.it"></td>
         </tr>
    </tbody>
</table>

js代码:

var viewModel={
  Header:ko.observableArray([]),
  Order:ko.observableArray([])
};
ko.applyBindings(viewModel);
//Header正常push就好
$.each(Order, function(k,v){
    var value =v;
    var items=[];
    $.each(value, function(key, val){
        items.push({
             it:val
        });
     });
     viewModel.Order.push({
        item:items,
        //textColor等其他参数
     });
});
     
主要思想就是,讲item初始化为数组,然后再放入Order中,而不是一开始就在Order中。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值