Reputation: 105
I try to create autoform with type method
in my Meteor application.
Client side HTML:
<template name="addLeader">
<div id="addLeader" class="addLeader">
<h2></h2>
{{#autoForm schema=LeaderSchema id="insertPostForm" type="method" meteormethod="serverMethod"}}
{{> afQuickField name='userName' class='form-input'}}
{{> afQuickField name='secondName' class='form-input'}}
{{> afQuickField name='email' class='form-input'}}
{{> afQuickField name='password' type='password' class='form-input'}}
<button type="submit" class="btn btn-default full-width accept-button"><span class="glyphicon glyphicon-ok "></span></button>
{{/autoForm}}
<button class="btn btn-default full-width cancel-button"><span class="glyphicon glyphicon-remove "></span></button>
</div>
</template>
Client side JS:
Template.adminPanel.helpers({
LeaderSchema: function() {
return Schema.LeaderSchema;
}
});
Schema in lib:
Schema = {};
Schema.LeaderSchema = new SimpleSchema({
userName: {
type: String,
label: ""
},
secondName: {
type: String,
label: ""
},
email: {
type: String,
label: ""
},
password: {
type: String,
label: ""
}
});
Server method:
Meteor.methods({
serverMethod: function(doc) {
console.log(doc);
}
});
On view where I want to display form, form fields are not displaying, and i get this error:
Exception in template helper: TypeError: Cannot read property 'schema' of undefined
at Object.getDefs (http://localhost:3000/packages/aldeed_autoform.js?666ec8103d59fae9aad5553df832ececaa593358:255:18)
at Object.autoFormGetComponentContext [as getComponentContext] (http://localhost:3000/packages/aldeed_autoform.js?666ec8103d59fae9aad5553df832ececaa593358:516:20)
at Object.afQuickFieldIsGroup (http://localhost:3000/packages/aldeed_autoform.js?666ec8103d59fae9aad5553df832ececaa593358:7489:30)
at bindDataContext (http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2880:16)
at Blaze._wrapCatchingExceptions (http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:1651:16)
at http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2928:66
at Function.Template._withTemplateInstanceFunc (http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:3476:12)
at wrapHelper (http://localhost:3000/packages/blaze.js?a5c324925e5f6e800a4c618d71caf2848b53bf51:2927:27)
at Object.Spacebars.call (http://localhost:3000/packages/spacebars.js?7bafbe05ec09b6bbb6a3b276537e4995ab298a2f:172:18)
at http://localhost:3000/packages/aldeed_autoform.js?666ec8103d59fae9aad5553df832ececaa593358:7440:22
When I remove form fields from the html file, then I don't get errors. What could be reason? Am I doing something wrong?
I'm doing this with autoform docs.
Upvotes: 3
Views: 1079
Reputation: 5156
You used the wrong template for your LeaderSchema
helper.
This should work:
Template.addLeader.helpers({ // not Template.adminPanel.helpers
LeaderSchema: function() {
return Schema.LeaderSchema;
}
});
Upvotes: 3