Javascript 嵌套对象上的Knockoutjs嵌套foreach

Javascript 嵌套对象上的Knockoutjs嵌套foreach,javascript,object,knockout.js,Javascript,Object,Knockout.js,我对KnockoutJs还不熟悉,似乎无法理解这一点。我有一个称为“周”的对象数组,每个对象都有一个称为“周”的对象数组。我怎样才能每星期做一次飞行呢。这是我到目前为止所做的尝试,但毫无结果 型号: var Model = { weeks: ko.observableArray([ {"week":[ {day:'01', total:'109'}, {date:'05', total:'250'} ]}, {"week":[ {date:'02', total:'102'}, {date

我对KnockoutJs还不熟悉,似乎无法理解这一点。我有一个称为“周”的对象数组,每个对象都有一个称为“周”的对象数组。我怎样才能每星期做一次飞行呢。这是我到目前为止所做的尝试,但毫无结果

型号:

var Model = {
  weeks: ko.observableArray([
{"week":[ {day:'01', total:'109'},  {date:'05', total:'250'} ]},
{"week":[ {date:'02', total:'102'}, {date:'05', total:'255'} ]}             
  ])
};

ko.applyBindings(Model);
视图:



多谢各位

使用@nemesv对您的视图模型所做的相同修复,下面是您每周如何循环(根据您最初的问题)。这是一把小提琴

函数loopWeeks(){
ko.utils.arrayForEach(Model.weeks(),function(weeks){
对于(变量i=0;i

它有点难看,至少在KO方面是这样;但你的个人周数是不可见的。如果您希望它们是可观察的,请告诉我,我将更改帖子。

如果您对每个对象使用相同的属性名称:因此,替换date to day,那么您的代码工作正常:我认为您有一个输入错误:第一个对象指代day属性,其他对象指代date属性。因此,请按日期替换日期。谢谢,真遗憾,我调试了一个打字错误两个小时,请注意,您当前的设置中观察到了周数组,但没有“周”数组中的数组,也没有该数组中的属性。因此,根据您实际要做的事情,您在这里受到了很大的限制。如果您不想在上foreach(“Weeks”)中使用任何元素,您可以像使用代码一样使用ko绑定
<section class="dates" data-bind="foreach: weeks">
    <article data-bind="foreach: $data.week">
      <span class="day" data-bind="text: day"></span>                   
      <span class="dayTotal" data-bind="text: total"></span>                    
    </article>
</section>
function loopWeeks() {
    ko.utils.arrayForEach(Model.weeks(), function (weeks) {
        for (var i = 0; i < weeks.week.length; i++) {
            console.log(weeks.week[i]); // here you have access to one of your week objects

            // set value of a day
            weeks.week[i].day = "4";

            // get value of a day
            var day = weeks.week[i].day;

        }
    });
}