Сценарий:
Я пытаюсь вставить Appointment для клиента, использующего autoform, только когда даты не конфликтуют. ниже приведен код для получения краткой идеи.
{{#autoForm id='insertAppointmentForm' collection=appointment type="insert"
doc=this validation="browser"}}
<fieldset>
<!-- All fields here -->
</fieldset>
<button type="submit" class="btnn"> Create </button>
{{/autoForm}}
Я добавляю хук к приведенному выше коду автоформы insert, как показано ниже,
var hooksObject = {
before: {
insert: function(doc) {
console.log(doc);
Meteor.call('checkAppointmentClash', doc, function(error, response){
if(error){ } else { }
});
return doc; // I want to wait here
}
},
onSuccess: function(formType, result) {},
onError: function(formType, error) {}
};
AutoForm.addHooks(['insertAppointmentForm'], hooksObject, true);
Проблема:
Проблема здесь в том, что форма отправляется, даже если error возвращается из Meteor.call() и вставляет document в базу данных. Я знаю, что Meteor.call() это асинхронный вызов, но как мне дождаться результата? только тогда я хочу продолжить отправку, если нет ошибки.