Javascript 构建多视图(多页)Knockout.js应用程序
我已经在Knockout.js上工作了几周,现在正在做示例和其他教程,但我仍在试图弄清楚如何构建我正在开发的应用程序的所有内容。这是一个简单的学校后台应用程序,保存所有班级、年级、教师、出勤率和学生的列表。它有多个页面:Javascript 构建多视图(多页)Knockout.js应用程序,javascript,knockout.js,knockout-2.0,Javascript,Knockout.js,Knockout 2.0,我已经在Knockout.js上工作了几周,现在正在做示例和其他教程,但我仍在试图弄清楚如何构建我正在开发的应用程序的所有内容。这是一个简单的学校后台应用程序,保存所有班级、年级、教师、出勤率和学生的列表。它有多个页面: 所有类的列表(您可以在其中添加/编辑/删除类) 每个班级都有一个学生列表(您可以在其中添加/编辑/删除学生) 每个学生都有他/她的出勤率和成绩列表 教师网页 学校科目页 和其他人 如何构建此应用程序?我已经在“类”页面上创建了一个类模型: function Class(da
- 所有类的列表(您可以在其中添加/编辑/删除类)
- 每个班级都有一个学生列表(您可以在其中添加/编辑/删除学生)
- 每个学生都有他/她的出勤率和成绩列表
- 教师网页
- 学校科目页
- 和其他人
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);
}));
[...]
}
那么,我是否继续为应用程序的每个主要部分(学生、教师、科目等)创建单独的模型和视图模型,并将它们分别绑定到各自的页面上?如果我走这条路,我如何在ViewModels之间共享函数而不向每个ViewModels添加相同的函数?我为KO创建了一个名为Knockout.BindingConventions的配置库约定 使用nuget安装
Install-Package Knockout.BindingConventions
Install-Package Knockout.Bootstrap
该库的一个特性是其模板约定,基本上它理解名为ClassViewModel的viewmodel应该连接到名为ClassView的模板(视图)
我还创建了一个利用上述库的模板引导程序
使用nuget安装
Install-Package Knockout.BindingConventions
Install-Package Knockout.Bootstrap
结合这两个库,您可以在服务器上构建这样的应用程序(以ClassViewModel为例)
这里是完全工作的MVC4演示