【发布时间】:2015-06-02 09:54:46
【问题描述】:
我正在尝试通过研究现有源代码并对它们进行小的更改来学习 knockoutjs。我在这里尝试理解的源代码是 RP Niemeyer 的 knockout-sortable.js 示例。
原始示例代码为here
我做了一些小的改动,它们是here
原始代码有一个名为 maximumstudents 的全局属性,用于检查每个表中的学生人数。我在表格中添加了一个名为“maxstudents”的属性,它将决定每张桌子可以坐多少学生。
原始代码还使每个表都可以填满男女学生。我正在尝试查看是否可以根据性别隔离某些表格。 为此..我还添加了另一个属性“allowedstudentgender”,它将决定哪个性别的学生可以坐在哪个桌子上..
这段代码的变化如下所示..
var Table = function(id, name, students,maxstudents,allowedstudentgender) {
this.students = ko.observableArray(students);
this.students.id = id;
this.name = ko.observable(name);
this.maxstudents=ko.observable(maxstudents);
this.allowedstudentgender=ko.observableArray(allowedstudentgender);
};
以及数据的连续变化:
var initialTables = [
new Table(1,"Table One", [
new Student(3, "Jim", "male"),
new Student(6, "Chase", "male")
],2,["male"]),
//and so on...
决定每个表中学生人数的原始方法如下..
this.isTableFull = function(parent) {
return parent().length < self.maximumStudents;
};
我想弄清楚的是如何在这个方法中获取表格的 maxstudents 属性..
另外..要根据性别隔离用户,我需要更改 -verifyAssignments 方法..
当前功能由以下代码块检查..
if (!ko.utils.arrayFirst(parent(), function(student) { return student.gender !== gender;})){// .... }
这里我需要弄清楚如何将学生的性别映射到表的 allowedstudentgender 属性..
我试图通过检查“arg.targetParent.allowedstudentgender”来获取 allowedstudentgender 属性,但它显示未定义
真诚感谢任何帮助..
谢谢
【问题讨论】:
标签: knockout.js knockout-2.0 knockout-sortable