【发布时间】:2015-08-06 13:44:17
【问题描述】:
我在尝试从可淘汰的可观察数组中的每个项目中获取一个数字并将这些数字相加并将其分配给另一个计算变量时遇到了麻烦。这就是我现在所拥有的......
Semesters: ko.observableArray([
{
semesterName: "Fall",
semesterCode: "300",
PlannedCourses: ko.observableArray([]),
totalCredits: ko.computed(function(){
var total = 0;
ko.utils.arrayForEach(this.PlannedCourses, function (course) {
total += course.MinHours();
});
return total;
}),
},
...
我正在尝试做的是,在 totalCredits 变量中,我尝试遍历 PlannedCourses 数组并获取每个项目的 MinHours 变量并将它们一起添加到总变量中。然后我将它返回到 Semesters 数组中的 totalCredits 项。我遇到的问题是在 ko.utils.arrayForEach 部分中获取 PlannedCourses 变量。我得到一个未定义的,我不知道为什么。我认为这是一个简单的语法错误,但我看不出有什么问题。
PlannedCourses 可观察数组是一个动态对象,可以正确获取 PlannedCourses 列表。它是在自身的上下文中定义的,但我没有正确地将它传递给 totalCredits 计算函数。
我希望这已经足够清楚了。感谢您的帮助!
注意:所有其余代码都按预期工作。唯一不起作用的部分是 totalCredits 计算函数。我不确定 ko.utils.arrayForEach 中的任何内容是否正常工作,因为我还没有做到这一点。
【问题讨论】:
标签: javascript function knockout.js