Я использую нокаут с bootstrap js.
Мое требование:
- Я создаю HTML-форму и выполняю привязку данных с помощью нокаута.
- После отправки этой формы я показываю сообщение пользователю в модальном режиме начальной загрузки.
- При закрытии этого модального окна мне нужно сбросить форму HTML. SO при нажатии на кнопку закрытия I и выполнении привязки щелчка и вызове метода. Ниже приведен фрагмент этого метода.
// Re-setting the observable to default value
me.addStudentForClass(null);
me.parents=ko.mapping.fromJS(new parentInfoModel(undefined));
me.localGuardian=ko.mapping.fromJS(new localGuardian(undefined));
me.lastSchoolEducation=ko.mapping.fromJS(new lastSchoolEducation(undefined));
// Closing bootstrap Modal
$('modal-id').modal('hide');
// Cleaning the knockout node , to reflect the reset change
ko.cleanNode($('#add-student')[0]);
// and binding the view model
ko.applyBindings(app.mainViewModel, $('#add-student')[0]);
Если мы не используем ниже двух строк кода, тогда модальное окно работает нормально, и модальное окно закрывается при нажатии кнопки закрытия.
ko.cleanNode($('#add-student')[0]);
ko.applyBindings(app.mainViewModel, $('#add-student')[0]);
Но мне нужно использовать приведенные выше две строки кода, потому что мне нужно сбросить мою форму.
Если мы задерживаем очистку узла, он работает нормально.
function saysomething(){
ko.cleanNode($('#add-student')[0]);
ko.applyBindings(app.mainViewModel, $('#add-student')[0]);
}
setTimeout(saysomething, 500); }
Пожалуйста, помогите мне с этим. Я не хочу использовать setTimeout. И, пожалуйста, предложите лучший способ для этого.
Благодарю вас