在Knockout js中创建一个包含多行的表,而不需要推送
Create a table with many rows without push in Knockout js
我正试图创建一个有100行的表,但我不想使用推送,因为每次推送都会呈现页面。该表一开始应该是空的,但当我单击某个按钮时,该表将创建所有行。这里的问题是,当我点击按钮时,我看不到行
但我只能设置self.row=ko.obstangleArray()一次?
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());
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([]);
然后使用设置数据(而不是像你正确地说的那样推送每个数据)
self.rows(arr);
完整的代码在这里:https://jsfiddle.net/brianlmerritt/y0x0wwy5/
相关文章:
- Javascript搜索和替换需要包含更多内容
- 需要一个用于AJAX的Javascript库,其中包含多部分/表单数据
- 使用一个Javascript函数提交多个表单可以在FF中工作,而不需要其他浏览器
- 在Knockout js中创建一个包含多行的表,而不需要推送
- XMLHttpRequest,使用多个1不起作用,只是第一个.需要使用多个
- Highcharts多个x轴,不包含多个系列
- 使用 jquery 克隆元素产生不需要的多个副本
- Rethinkdb谓词函数“包含”多个值不起作用
- javascript 包含之后出现不需要的下划线和 unix 时间戳
- 不需要Â即使头中包含UTF-8元标记,也会显示出来
- 由于包含多个javascript/需要,jQuery事件多次触发
- Raphael js如何在每个站点包含多个图标?使用类而不是ID
- 则请求不会't包含多部分/表单数据或多部分/混合流,内容类型标头为false
- 用jquery函数上传图像或文件,只需要它,不需要php,也不需要更多的代码
- Bower应该自动包含库js和css文件吗;不需要在index.html中列出
- 我需要更多的输入标签,而我的 HTML/JavaScript 组合不起作用
- 为什么我需要在default.htm中包含多个.js文件,当在visual studio中使用typescript时
- 字符串插值在包含多个单词的字符串中不能正常工作
- 如何使yield工作与this.req.on('data'),而不需要更多的模块
- 单个按键按下时触发的不需要的多个按键按下事件