我想发送电子邮件并显示相关通知(下面是提交功能代码):
Session.set('alertMessage', ['Email has been sent', 'success']);
var a = Session.get('alertMessage');
console.log(a);
Meteor.call('sendEmail', dataText);
我的SendEmail方法:
Meteor.methods({
sendEmail: function (text) {
check([text], [String]);
this.unblock();
Email.send({
to: 'myEmail@email.xyz',
from: 'contactForm@email.xyz',
subject: 'New message from contact form',
text: text
});
}
});
并呈现联系表单模板的回调:
Template.contactFormTemplate.rendered = function(){
var b = Session.get('alertMessage');
console.log(b);
}
问题:我在控制台中看到a
变量正确获取会话值:
数组['电子邮件已发送','成功']
但页面重新加载后(提交表单时)b
变量无法获取会话变量:
undefined
即使我尝试从控制台获取此会话变量:
var c = Session.get('alertMessage')
console.log(c)
返回undefined
- 任何人都可以帮我解决这个问题吗?
答案 0 :(得分:0)
最后,我自己设法解决了这个问题 - 这里是表单提交操作代码:
Session.set('alertMessage', ['Message has been sent.', 'success']);
Meteor.call('sendEmail', dataText);
联系表单模板呈现回调:
Meteor.defer(function(){
var a = Session.get('alertMessage');
if(a){
throwAlert(a[0], a[1]); //my custom method for nicer alert popups
Session.set('alertMessage', null);
}
});
最后,我必须添加persistent-session包:
meteor add u2622:persistent-session