Knockout.js js订阅可观测数组中的可观测元素

Knockout.js js订阅可观测数组中的可观测元素,knockout.js,observable,subscribe,Knockout.js,Observable,Subscribe,js My Course在更改时不订阅可观察数组。控制台日志不显示。我不知道怎么修理它。有什么想法吗 课程{ 建造师(数据){ this.id=ko.可观察(data.id); this.name=ko.observable(data.name); this.讲师=ko.可观察(data.讲师); this.name.subscribe(函数(newName){ console.log(newName); }); this.讲师.订阅(函数(new讲师){ console.log(new讲师);

js My Course在更改时不订阅可观察数组。控制台日志不显示。我不知道怎么修理它。有什么想法吗

课程{
建造师(数据){
this.id=ko.可观察(data.id);
this.name=ko.observable(data.name);
this.讲师=ko.可观察(data.讲师);
this.name.subscribe(函数(newName){
console.log(newName);
});
this.讲师.订阅(函数(new讲师){
console.log(new讲师);
});
}
}
函数原型(){
var self=这个;
self.courses=ko.observearray([]);
self.addCourse=函数(){
const newCourse=新课程({
名称:this.newCourseNameText(),
讲师:这个。新课程选课课文()
});
self.courses.push(ko.mapping.toJS(newCourse));
self.newCourseNameText(“”);
self.newCourseLecturerText(“”);
};
}
var模型=新的原型();
ko.应用绑定(模型);

在课程构造函数中,您创建了全新的可观察对象,然后只将旧可观察对象中的值赋给它。你同意这个新的观测结果

然后,在创建之后,您试图更改您的“旧”可观察对象,如果您订阅它的更改,您将看到它们。但是,在newCourse中创建的观测值保持不变

试着替换

self.newCourseNameText("");
self.newCourseLecturerText("");


我从课程构造函数创建新课程。newCourseNameText是绑定到clean输入的,当我键入并按下带有data bind=“click:addCourse”的按钮时,我将此过程推到可观察数组。最后,我在提交后清理这些输入。但我在表中有课程数组和输入,当我编辑特定课程时,我想订阅它,但它不起作用。你能更好地解释它吗??,我不明白。你能在你更改这些变量的地方添加代码吗?是html还是js?顺便说一句,当你做self.courses.push(ko.mapping.toJS(newCourse))时将新课程的json副本推入可观察数组,而不是包含可观察内容的对象。因此,如果您稍后在此数组中编辑某个课程,则不会影响原始订阅,因为它是一个不可观测的不同对象。这是我的github repo:
self.newCourse.name("");
self.newCourse.lecturer("");