Javascript 如何在Knockout.js中嵌套对象

Javascript 如何在Knockout.js中嵌套对象,javascript,knockout.js,knockout-2.0,Javascript,Knockout.js,Knockout 2.0,在Knockout.js中,在数组中嵌套对象的最佳方式是什么 我试着用一组课程名称对一个可观察的对象进行排序,里面会有不同的课程提供给一个具有相同组属性(课程代码)的学生 这是我的片段 功能课程(\u id,\u code,\u title,\u campus){ var self=这个; this.id=ko.可观察(_id); this.courseCode=ko.可观察(_代码); this.courseTitle=ko.可观察(_title); this.coursecampus=ko

在Knockout.js中,在数组中嵌套对象的最佳方式是什么

我试着用一组课程名称对一个可观察的对象进行排序,里面会有不同的课程提供给一个具有相同组属性(课程代码)的学生

这是我的片段

功能课程(\u id,\u code,\u title,\u campus){
var self=这个;
this.id=ko.可观察(_id);
this.courseCode=ko.可观察(_代码);
this.courseTitle=ko.可观察(_title);
this.coursecampus=ko.可观察(_校园);
}
函数gpCourseProperties(\u代码,已添加){
var self=这个;
this.gpCode=ko.observable(_code);
this.hide=ko.可观察(_ishiden);
this.courses=ko.observearray();
this.addCourse=函数(\u id、\u courseCode、\u CourseTile、\u courseCampus){
self.courses.push(新课程(_id,_courseCode,_courseTitle,_courseCampus));
}
this.switchMutated=函数(代码){
self.hide(!self.hide());
};
this.switchText=ko.computed(函数(){
if(self.hide()==true){
返回'+'
}
返回“-”;
},这个);
}
函数ViewModel(){
var self=这个;
this.gpCourseProp=ko.observearray();
self.gpCourseProp.push(新的gpCourseProperties(“MATH1030”,true));
self.gpCourseProp.push(新的gpCourseProperties(“MATH1006”,true));
self.gpCourseProp.push(新的gpCourseProperties(“MATH1046”,true));
对于(i=0;i
tr.mutated{
显示:无;
}

身份证件
课程代码
课程名称
课程校园
主要问题是:

  • 初始化数据时,只需将
    gpCourseProperties
    的参数推送到可观察数组中。您需要使用
    new
    构建viewmodel
  • 当你为你的
    courseProperties
    创建
    course
    内容时,你需要选中
    gpCode==“一些字符串”
    。由于
    gpCode
    可观察的
    ,因此需要使用
    ()
    提取其值,才能使其为真
这是一个更新版本,其中包含了使其工作所需的最小更改。(注意,出于调试目的,我删除了隐藏某些行的CSS)

修复程序在注释中进行了标记

功能课程(\u id,\u code,\u title,\u campus){
var self=这个;
this.id=ko.可观察(_id);
this.courseCode=ko.可观察(_代码);
this.courseTitle=ko.可观察(_title);
this.coursecampus=ko.可观察(_校园);
}
函数gpCourseProperties(\u代码,已添加){
var self=这个;
this.gpCode=ko.observable(_code);
this.hide=ko.可观察(_ishiden);
this.courses=ko.observearray();
this.addCourse=函数(\u id、\u courseCode、\u CourseTile、\u courseCampus){
self.courses.push(新课程(_id,_courseCode,_courseTitle,_courseCampus));
}
this.switchMutated=函数(代码){
self.hide(!self.hide());
};
this.switchText=ko.computed(函数(){
if(self.hide()==true){
返回'+'
}
返回“-”;
},这个);
}
函数ViewModel(){
var self=这个;
this.gpCourseProp=ko.observearray();
//修正1:
//VVVVVVVVVV
self.gpCourseProp.push(新的gpCourseProperties(“MATH1030”,true));
self.gpCourseProp.push(新的gpCourseProperties(“MATH1006”,true));
self.gpCourseProp.push(新的gpCourseProperties(“MATH1046”,true));
对于(i=0;i

身份证件
课程代码
课程名称
课程校园