我正在复制我的问题的简化版,提出一个基本问题。
我有一个名为'form'的模板,
<template name="form">
<input id="name" type="text">
<button id="submitform type="submit">Submit</button>
</template>
我正在按如下方式处理提交事件,
Template.form.events({
'click #submitform': function() {
event.preventDefault();
if(Meteor.user())
alert('submitted');
else{
//save the filled form along with view (basically the template or view)
Router.go('login');
}
}
});
我的问题是,如何使用填充在变量/任何方式中的数据保存填充的模板,以便我可以在登录后进行渲染。 这就是我渲染表单模板的方式,
Router.route('/form', function () {
this.render('form');
});
我想要的是能够在他登录时为他呈现用户填充的模板/视图。请告诉我是否有流星方式来做这件事,而不是简单的JavaScript破解。请询问您是否需要其他数据/代码。 提前谢谢。
答案 0 :(得分:0)
如果我理解你的问题,你可以使用session变量。
<template name="form">
<input id="name" type="text" value="{{name}}">
<button id="submitform type="submit">Submit</button>
</template>
Template.form.helpers({
name() {
return Session.get('name');
}
});
Template.form.events({
'click #submitform': function(event, template) {
event.preventDefault();
if(Meteor.user())
alert('submitted');
else{
Session.set('name', template.find('#name').value);
Router.go('login');
}
}
});
然后在Meteor.loginWithPassword回调中重定向回表单路由。
答案 1 :(得分:0)
如果您想要保存包含用户数据的表单,您可以将其隐藏起来,然后在您想要显示它时再次显示它吗?
否则,您可以从save formData对象重新填充表单。见Use jquery to re-populate form with JSON data