У меня есть приложение, которое при вводе имени ТА открывает новое всплывающее окно, в котором показаны курсы, которые принимает ТА. Когда я закрываю окно и ввожу новое имя, курсы предыдущего студента добавляются в таблицу курсов. Я делаю расширение кода VS.
Мой JavaScript прослушиватель событий дублирует значения. Я думал, что если eventListener
находится внутри окна, он закроется, когда окно закроется. Похоже, этого не происходит. Это часть моего кода:
// obtain response
window.addEventListener('message', event => {
var message = event.data;
// check enrollment list
switch (message.command) {
case 'enroll':
var enrollment = message.enrollment;
makeTaTable(enrollment);
}
});
// obtain a list of the enrolled modules and add them to the table
vscode.postMessage({command: 'enrollmentData'});
screen.webview.onDidReceiveMessage(message => {switch(message.command){case 'enrollmentData': this.enrolled();
return;}}, undefined, context.subscriptions);
this.enrolled = function enrolled () {
// obtain list of enrolled modules (if any)
for (var i in this.modulesList.TAs){
var enrolledList = this.modulesList.TAs[i].userName;
if (enrolledList == this.user){
var modEnrolled = this.modulesList.TAs[i].enrolled;
console.log('sending enrollment info: ' + modEnrolled);
screen.webview.postMessage({command: 'enroll', enrollment: modEnrolled});
break;
}
}
};
Все что угодно поможет.