几周以来我一直在使用 Knockout.js 做示例和其他教程,但我仍在试图弄清楚如何在我正在开发的应用程序上构建所有内容。这是一个简单的学校后端应用程序,可以保存所有班级、成绩、教师、出勤率和学生的列表。它有多个页面:
- 所有类的列表(您可以在其中添加/编辑/删除类)
- 每个班级都有一个学生列表(您可以在其中添加/编辑/删除学生)
- 每个学生都有他/她的出勤和成绩清单
- 教师页面
- 学校科目页面
- 和别的 ...
我该如何构建这个应用程序?我已经通过创建类模型开始了“类”页面:
function Class(data) {
var self = this;
self.id = data.id;
self.name = ko.observable(data.name);
self.students = data.students;
self.attendance = data.attendance;
}
...和一个加载初始内容(类列表)的类 ViewModel。它还包含添加、编辑和删除类的功能。
function ClassViewModel() {
var self = this;
self.classes = ko.observableArray(ko.utils.arrayMap(classArr, function(eachClass) {
return new Class(eachClass);
}));
[...]
}
那么我是否继续为应用程序的每个主要部分(学生、教师、科目等)做一个单独的模型和视图模型,并将它们分别绑定在自己的页面上?如果我走这条路,我如何在 ViewModel 之间共享功能而不给每个 ViewModel 添加相同的功能?