我尝试在Meteor应用程序中创建类型为method
的autoform。
客户端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>
客户端JS:
Template.adminPanel.helpers({
LeaderSchema: function() {
return Schema.LeaderSchema;
}
});
lib中的模式:
Schema = {};
Schema.LeaderSchema = new SimpleSchema({
userName: {
type: String,
label: ""
},
secondName: {
type: String,
label: ""
},
email: {
type: String,
label: ""
},
password: {
type: String,
label: ""
}
});
服务器方法:
Meteor.methods({
serverMethod: function(doc) {
console.log(doc);
}
});
在我要显示表单的视图上,表单字段未显示,我收到此错误:
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
当我从html文件中删除表单字段时,我不会收到错误。可能是什么原因?我做错了吗?
我正在使用autoform docs执行此操作。
答案 0 :(得分:3)
您为LeaderSchema
帮助程序使用了错误的模板。
这应该有效:
Template.addLeader.helpers({ // not Template.adminPanel.helpers
LeaderSchema: function() {
return Schema.LeaderSchema;
}
});