获取 autoform 非集合表单方法 return 值

get autoform non-collection forms method return value

我想为我的非收款表格使用 meteor-autoform。我尝试 this 方法,但我想获取方法 return 值并将其显示在客户端上。请指导我如何操作。

这是我的架构 (common.js):

Schema = {};
Schema.echoSchema = new SimpleSchema({
    echoText: {
        type: String,
        label: "Echo Text",
        max: 50
    }
});

这是我在客户端的代码(client.js):

Template.showEcho.helpers({
    getEchoFormSchema: function() {
        return Schema.echoSchema;
    }
});

这是我在服务器上的代码(server.js):

Meteor.methods({
  echoMethod: function (doc) {
    check(doc, Schema.echoSchema);
    return doc.echoText;
  },
});

这是我的表单模板(showEcho.html):

    <template name="showEcho">
        {{#autoForm schema=getEchoFormSchema id="echoForm" type="method" meteormethod="echoMethod"}}
            <fieldset>
                <legend>Echo Form</legend>
                    {{> afQuickField name="echoText"}}
                    <div>
                        <button type="submit" class="btn btn-primary">Submit</button>
                        <button type="reset" class="btn btn-default">Reset</button>
                    </div>
            </fieldset>
        {{/autoForm}}

        <p>
            // How To Show Echo Text HERE??
            Text = ???????????????????
        </p>
    </template>

Autoform hooks 是你的朋友

Read about it here

将此添加到您的客户端代码:

AutoForm.hooks({
    'echoForm': {
        after: {
           method: function(error, result) {
              console.log("after");
              if (result) {
                 return Session.set('result', result);
              }
           }
        }
     }
});

在您的模板 js 文件中,为 return Session.get 'result'

创建一个助手
Template.showEcho.helpers({
  text: function() {
    return Session.get('result')

  }
});

模板html文件:

<template name="showEcho">
    {{#autoForm schema=getEchoFormSchema id="echoForm" type="method" meteormethod="echoMethod"}}
       .
       .
       .
       . 
    {{/autoForm}}

    <p>
        {{text}}
    </p>
</template>