如何使用knockout foreach方法动态设置表格单元格?

时间:2013-11-14 04:56:11

标签: knockout.js

我有一个viewModel和一个ko.observableArray,如下所示

 users: ko.observableArray([{
     name: 'Name1',
     email: 'Email1'

 },
 {
     name: 'Name2',
     email: 'Email2'
 },
 {
      name: 'Name3',
     email: 'Email3'
 },
 {
     name: 'Name4',
     email: 'Email4'
 },
 {
     name: 'Name5',
     email: 'Email5'
 },
 {
     name: 'Name6',
     email: 'Email6'
 }
])

};

我想使用来自ko​​.observableArray'users'的knockout绑定动态创建一个表。  表结构如下所示

enter image description here

2 个答案:

答案 0 :(得分:2)

您可以通过创建ko.computed这样的

来实现
viewModel.rows = ko.computed(function () {
    var rows = [],
        currentRow,
        colLength = 3;
    for (var i = 0, j = this.users().length; i < j; i++) {
        if (i % colLength === 0) {
            if (currentRow) {
                rows.push(currentRow);
            }
            currentRow = [];
        }
        currentRow.push(this.users()[i]);
    }
    if (currentRow) {
        rows.push(currentRow);
    }
    return rows;
}, viewModel);

小提琴:http://jsfiddle.net/codovations/kdLPM/4/

其他信息:https://stackoverflow.com/a/7674755/17447

答案 1 :(得分:0)

请参阅以下示例

http://www.dotnetcurry.com/ShowArticle.aspx?ID=847

希望会有所帮助。