Schemas = {};
Schemas.ContactForm = new SimpleSchema({
name: {
type: String,
label: "Your name",
max: 50
},
email: {
type: String,
regEx: SimpleSchema.RegEx.Email,
label: "E-mail address"
},
message: {
type: String,
label: "Message",
max: 1000
}
});
HTML:
<template name="contactForm">
{{#autoForm schema=Schemas.ContactForm id="contactForm" type="method" meteormethod="sendEmail"}}
<!-- etc. -->
{{/autoForm}}
</template>
流星法,请查看评论:
Meteor.methods({
sendEmail: function(contents){
check(contents, Schemas.ContactForm);
Mandrill.messages.send({
// do something to send
}, function(error, response){
if (error){
// how does error bubble back up to the client?
} else {
// how does success bubble back up to the client?
}
})
},
})
因此,使用AutoForm meteormethod
属性,如何从我的服务器调用Mandrill中获取错误或响应,以回到客户端,以便我可以通知用户表单已提交,通过电子邮件成功发送了吗?
如果不在AutoForm上使用meteormethod
属性并手动连接表单提交上的Meteor.call
,会不会更好?
答案 0 :(得分:0)
Meteor.methods({
sendEmail: function(contents){
check(contents, Schemas.ContactForm);
return Mandrill.messages.send({
// do something to send
}, function(error, response){
if (error){
return error
} else {
return response
}
})},})
答案 1 :(得分:0)
尝试使用Meteor.wrapAsync
来调用它并返回它。
return Meteor.wrapAsync(Mandrill.messages.send, Mandrill.messages)(contents);