Knockoutjs在嵌套对象上嵌套foreach

Knockoutjs nested foreach on a nested object

本文关键字:嵌套 foreach 对象 Knockoutjs      更新时间:2024-03-27

我是KnockoutJs的新手,似乎无法理解这一点。我有一个名为"weeks"的对象数组,每个对象都有一个称为"week"的对象阵列。我怎么能每周做一次前臂。以下是我迄今为止所做的尝试,但一无所获。

型号:

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);

视图:

<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>

非常感谢!

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

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;
        }
    });
}

它有点难看,至少在KO方面是这样;但你个人的几周是不可观察的。如果你想让它们成为可观测的,请告诉我,我会更改帖子。