获取autoform非集合表单方法的返回值

时间:2015-04-27 08:20:43

标签: javascript node.js meteor meteor-blaze meteor-autoform

我想在我的非收集表格中使用meteor-autoform。我尝试this方法,但我想获取方法返回值并在客户端上显示它。请指导我如何做到这一点。

这是我的架构( 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>

1 个答案:

答案 0 :(得分:1)

Autoform hooks是你的朋友

Read about it here

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

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

在Template js文件中,创建一个帮助程序以返回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>