Javascript 创建一个包含多行的表,而不使用push-in-Knockout js

Javascript 创建一个包含多行的表,而不使用push-in-Knockout js,javascript,knockout.js,Javascript,Knockout.js,我正在尝试创建一个包含100行的表,但我不想使用push,因为每次push都会呈现页面。表一开始应该是空的,但当我单击按钮时,表将创建所有行。 这里的问题是,我在单击按钮时不使用行。但是我只能设置self.row=ko.observearray()一次 JS RowModel = function(numbers) { var self = this; self.numbers = numbers; } TableViewModel = function() {

我正在尝试创建一个包含100行的表,但我不想使用push,因为每次push都会呈现页面。表一开始应该是空的,但当我单击按钮时,表将创建所有行。 这里的问题是,我在单击按钮时不使用行。
但是我只能设置self.row=ko.observearray()一次

JS

RowModel = function(numbers) {
    var self = this;
        self.numbers = numbers;
}

TableViewModel = function() {
    var self = this;
        self.rows = null;

    self.createRows = function() {

        var arr = [];
        var numbers = [];
        for(var i=0; i < 100; i++){
            for(var p=0; p < 4; p++){
                numbers[p] = p;
            }
            arr[i] = new RowModel(numbers);
        }
        self.rows = ko.observableArray(arr);
    }
};
ko.applyBindings(new TableViewModel());
RowModel=函数(数字){
var self=这个;
self.number=数字;
}
TableViewModel=函数(){
var self=这个;
self.rows=null;
self.createRows=函数(){
var-arr=[];
var数=[];
对于(变量i=0;i<100;i++){
对于(var p=0;p<4;p++){
数字[p]=p;
}
arr[i]=新的行模型(编号);
}
self.rows=ko.observearray(arr);
}
};
应用绑定(新的TableViewModel());
HTML

<button data-bind="click: createRows">Create</button>
<table>
<tbody data-bind="foreach: rows">
      <tr>
          <td data-bind="text: numbers[0]"></td
          <td data-bind="text: numbers[1]"></td>
          <td data-bind="text: numbers[2]"></td>
          <td data-bind="text: numbers[3]"></td>
      </tr>
</tbody>
</table>
创建

始终提前创建可观察数据,并使用函数调用对数据进行设置,例如

self.rows = ko.observable([]);
然后使用以下方法设置数据(而不是像您正确地说的那样,将每个数据推送):

完整的代码就在这里:

Ooo很简单:)谢谢
self.rows(arr);