使用这个http://jsfiddle.net/rniemeyer/NFbxc/我做了几乎相同的东西(http://jsfiddle.net/uhtshka/HE94X/),它几乎实现了我所有的需求,但一个问题仍然存在。从下面的链接可以看到,我们使用的数组非常简单。种:
var simpleArray = [
{... som data ...},
{... som data ...},
{... som data ...}];
但我试图实现同样的功能与更复杂的数组结构,如:
var notsosimpleArray = [{
dayname: 'Monday', rows:[
col1: 'data1',
col2: 'data2',
col3: 'data3',
]},{dayname: 'Tuesday', rows:[
col1: 'data1',
col2: 'data2',
col3: 'data3',
]}];
是否可以保存相同的功能?
您当然可以对所描述的复杂对象使用knockout。
您引用的JSFiddle有一些问题(var1-5集和在窗口对象上引用?),所以我没有尝试解决添加行函数,但我确实用一个在每天的数据中使用行数组的示例更新了小提琴。
链接:http://jsfiddle.net/HE94X/1/
请记住,在您的过滤器函数中,您希望返回一个数组,您可以通过查找日期来找到该数组。现在并不真正需要ko.utils.arrayForEach
函数,因为数组已嵌入到当天的对象数据中。
您应该能够将此逻辑扩展到add row函数,以便它可以将当前日期的条目推送到rows数组中。