2015-04-22 3 views
0

Я получаю исключение на стороне клиента (ниже) при использовании автоматической формы обновления. Я не знаю, как отладить эту проблему. Обратите внимание: файл в коллекции создается просто отлично. Это просто то, что это исключение было создано в клиентской консоли. Извините, если это вопрос noob.Ошибка исключения типа в Autoform (Meteor)

формы Клиент:

{{#autoForm class="editf" id="editf" collection="ServiceProviders" type="update" doc=selectedProvider}} 
{{> afQuickField name="businessname"}} 
{{> afQuickField name="businessdesc"}} 
<button type="submit" class="btn btn-primary">Update your profile</button> 
{{/autoForm}} 

Помощник:

Template.createprovider.events = { 
'submit .editf' : function(e) { 
    event.preventDefault(); 
    Router.go('/createdprovider'); 
    AutoForm.resetForm('editf'); 
} 

};

крючки коллекции:

ServiceProviders.after.update(function (userId, doc) { 
    Meteor.call('UpdateAddressAndLocation', userId, doc); 
}); 

исключение:

Exception in delivering result of invoking '/serviceproviders/update': TypeError: Cannot read property 'reset' of undefined 
at Object.autoFormResetForm [as resetForm] (http://localhost:3000/packages/aldeed_autoform.js?b2b90d28d5cc29be68358bb3c8bb8a337992a7dd:2127:26) 
at autoFormActionCallback (http://localhost:3000/packages/aldeed_autoform.js?b2b90d28d5cc29be68358bb3c8bb8a337992a7dd:6494:22) 
at CollectionHooks.defineAdvice.args.(anonymous function) (http://localhost:3000/packages/matb33_collection-hooks.js?6be355737d1b00b2f05a3c833db2d77cd78d8d47:419:23) 
at wrappedCallbackForParsingServerErrors (http://localhost:3000/packages/aldeed_collection2.js?fdc7f0975dd1b3446ea4afd5f820cb1242a521af:455:15) 
at _.each.Mongo.Collection.(anonymous function).wrappedCallback (http://localhost:3000/packages/mongo.js?3cfe0c5981c197df33036a37574850f057e934a6:621:9) 
at Meteor.bindEnvironment [as _callback] (http://localhost:3000/packages/meteor.js?43b7958c1598803e94014f27f5f622b0bddc0aaf:983:22) 

EDIT: Рабочий код: Это должно быть помещено вместе с крюком представить. this.done() вызывает onSuccess.

onSuccess: function(doc, result) { 
     Router.go('/createdprovider'); 
    } 
+0

Может быть, попробовать interverting 'AutoForm.resetForm ('editf'); 'с' Router.go ('/ createdprovider'); '? – saimeunt

+0

Извините за мое непонимание, но что означает «переключение»? FYI, я получаю такую ​​же ошибку, даже если не меняю форму, т.е. если я удалю эту строку 'AutoForm.resetForm ('editf');', я получаю ту же ошибку ..... –

ответ

0

У Autofrom есть свои свойства .... Вы не можете использовать autoform id для получения значений при отправке.

Пример:

AutoForm.hooks({ 
 
    YourFormid: { 
 
    onSubmit: function (doc) { 
 
     PeopleSchema.clean(doc); 
 
     console.log("People doc with auto values", doc); 
 
     this.done(); 
 
     return false; 
 
    } 
 
    } 
 
});

Это правильный способ использовать крючки и использовать "док = это"

+0

Спасибо за правильный способ сделать это. Этот подход позволяет избавиться от ошибки, хотя я все еще не понимаю причину исключения. Кроме того, когда я делаю то же, что вы предлагали выше, 'Router.go ('/ createdprovider');' похоже, не работает. Мой код выглядит как 'AutoForm.hooks ({ YourFormid: { onSubmit: функция (док) { PeopleSchema.clean (док); console.log ("Люди документ с авто значений", док); Router.go ('/ createdprovider'); this.done(); return false;}}}); ' –

+0

спасибо. Я смог использовать onSuccess, чтобы сделать это правильно. –

 Смежные вопросы

  • Нет связанных вопросов^_^