meteor-autoform 无法显示表单:无法读取未定义的 属性 'schema'
meteor-autoform cannot display form: Cannot read property 'schema' of undefined
我尝试在我的 Meteor 应用程序中创建类型为 method
的自动表单。
客户端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;
}
});
库中的架构:
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 来做这个。
您为 LeaderSchema
助手使用了错误的模板。
这应该有效:
Template.addLeader.helpers({ // not Template.adminPanel.helpers
LeaderSchema: function() {
return Schema.LeaderSchema;
}
});
我尝试在我的 Meteor 应用程序中创建类型为 method
的自动表单。
客户端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;
}
});
库中的架构:
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 来做这个。
您为 LeaderSchema
助手使用了错误的模板。
这应该有效:
Template.addLeader.helpers({ // not Template.adminPanel.helpers
LeaderSchema: function() {
return Schema.LeaderSchema;
}
});