我一直在使用Knockout.js幾個星期,現在正在做示例和其他教程,但我仍然試圖找出如何構造一切在我正在處理的應用上。這是一個簡單的學校後端應用程序,可以保存所有課程,成績,教師,出勤和學生的列表。它有多個頁面:構建一個多視圖(多個頁面)Knockout.js應用程序
- 所有clases(在這裏您可以添加/編輯/刪除類)
- 每一類有一個列表中的學生(在這裏您可以添加/編輯/刪除學生)的列表
- 每個學生都有他/她的出席名單和等級
- 教師頁
- 學校科目頁面
- 和其他...
如何構建此應用程序?我已經通過創建一個類模型開始的「類」頁面上:
function Class(data) {
var self = this;
self.id = data.id;
self.name = ko.observable(data.name);
self.students = data.students;
self.attendance = data.attendance;
}
...和加載初始內容(類列表)一類視圖模型。它還包含添加,編輯和刪除類的功能。
function ClassViewModel() {
var self = this;
self.classes = ko.observableArray(ko.utils.arrayMap(classArr, function(eachClass) {
return new Class(eachClass);
}));
[...]
}
所以做我繼續做一個獨立的模型和視圖模型的應用程序的每個主要部分(學生,教師,學科等),並分別結合他們自己的頁面?如果我走這條路線,我怎樣才能在ViewModels之間共享功能,而不必爲每個功能添加相同的功能?