我想在我的非收集表格中使用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>
答案 0 :(得分:1)
Autoform hooks是你的朋友
将此添加到您的客户端代码:
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>