使用固定的第一列从挖空视图模型创建动态表

时间:2013-04-18 19:28:50

标签: jquery knockout.js

我想基于每月的天数创建动态表,并对其应用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>

基本上我想得到这个表格布局:

enter image description here

1 个答案:

答案 0 :(得分:2)

你走在正确的轨道上。

您可以使用if绑定有条件地显示“W”。您只需要使用indexOf method(或者如果您的浏览器不支持它,那么使用jQuery,underscore.js等中存在的实现)来检查{{1}中的当前项是否正确} collection位于daysInMonth数组中。

您可以使用daysOfTask属性获取当前项目,使用daysInMonth contextual binding properties获取实际$data数组:

daysOfTask

演示JSFiddle.