Autoform(Meteor)中的类型错误异常

时间:2015-04-22 15:50:39

标签: meteor meteor-autoform

我在使用更新autoform时遇到客户端异常(下面)。我完全不知道如何调试此问题。请注意,集合中的文件创建得很好。它只是在客户端控制台抛出这个异常。如果这是一个noob-question,请道歉。

客户表格:

{{#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)

编辑:工作代码: 这需要与提交钩子一起放置。 this.done()调用onSuccess。

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

1 个答案:

答案 0 :(得分: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;
    }
  }
});

这是使用钩子的正确方法,并使用“doc = this”

相关问题