Я пытаюсь изучить knockoutjs, изучая существующие исходные коды и внося в них небольшие изменения .. Исходный код, который я пытаюсь понять здесь, является примером knockout-sortable.js от Р.П. Нимейера.
Исходный пример кода находится здесь
Я внес несколько небольших изменений, которые здесь
Исходный код имеет глобальное свойство под названием 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 таблиц ..
Я попытался получить свойство allowedstudentgender, проверив 'arg.targetParent.allowedstudentgender', но он показывает undefined
Искренне приветствуется любая помощь.
Спасибо