繁体   English   中英

meteor-autoform无法显示表单:无法读取未定义的属性“schema”

[英]meteor-autoform cannot display form: Cannot read property 'schema' of undefined

我尝试在Meteor应用程序中使用type 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做的。

您使用了错误的LeaderSchema助手模板。

这应该工作:

Template.addLeader.helpers({ // not Template.adminPanel.helpers
    LeaderSchema: function() {
        return Schema.LeaderSchema;
    }
});

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM