我想基于每月的天数创建动态表,并对其应用knockout绑定。 到目前为止,我已经创建了基本表并生成了 tds 。
这是我的KO视图模型:
var WorkerModel = function (_workerId, _workerFullName, _daysOfTask) {
this.workerId = _workerId;
this.workerFullName = _workerFullName;
this.daysOfTask = _daysOfTask;
};
var AppViewModel = {
daysInMonth: ko.observable(),
workersArray: ko.observableArray(),
getWorkers: function () {
// get workers from server
}
}
我创建了jsfiddle示例: jsfiddle
问题是,我不知道如何确定dayOfMonth是否为dayOfTask并将html添加到该文件中。
foreach:daysInMonth - 创建td
if(daysOfTask [i] == dayOfMonth)在td中输入html:“W”
另外如何使用 ko.observable()进行迭代?在小提琴中,我将daysInMonth作为 observableArray(),但duno如何使用knockout创建for loop
。像这样:
daysInMonth = ko.observable(15);
< ko for(i = 0; i< daysInMont; i ++)>
......一些代码
< / ko>
基本上我想得到这个表格布局:
答案 0 :(得分:2)
你走在正确的轨道上。
您可以使用if
绑定有条件地显示“W”。您只需要使用indexOf
method(或者如果您的浏览器不支持它,那么使用jQuery,underscore.js等中存在的实现)来检查{{1}中的当前项是否正确} collection位于daysInMonth
数组中。
您可以使用daysOfTask
属性获取当前项目,使用daysInMonth
contextual binding properties获取实际$data
数组:
daysOfTask