我是KnockoutJs的新手,似乎无法解决这个问题。我有一个名为“周”的对象数组,每个对象都有一个名为“week”的对象数组。我怎样才能每周做一次foreach。这是我到目前为止尝试但无处可去的地方。
模型:
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>
非常感谢!
答案 0 :(得分:1)
使用@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方面;但你的个人周是不可观察的。如果你打算让他们成为可观察者,请告诉我,我会更改帖子。