我使用本指南实现密码重置。当用户点击生成的链接时,它应该打开我的" resetPassword"在Bootstrap中的模态。
http://blog.benmcmahen.com/post/41741539120/building-a-customized-accounts-ui-for-meteor
在我的client \ main.js中我有这段代码:
Template.recoverpopup.helpers({
resetPassword : function(t) {
return Session.get('resetPassword');
Modal.show('reset_password');
}
});
if (Accounts._resetPasswordToken) {
Session.set('resetPassword', Accounts._resetPasswordToken);
}
resetPassword会话变量通过控制台返回一个值。我是Meteor的新手,我还在全力以赴,但我觉得这个功能还没有运行。
模板代码:
<template name="recoverpopup">
{{#if resetPassword}}
<div class="modal fade" id="reset_password" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="loginmodal-container">
<h1>Reset je wachtwoord</h1><br>
<div id="reset_error" class="alert alert-danger hide">
<strong>Error:</strong>
</div>
<form id="resetform">
<input type="password" name="pass" id="newpassword" placeholder="Nieuw wachtwoord">
<input type="submit" name="reset" class="register loginmodal-submit" value="Reset">
</form>
</div>
</div>
</div>
{{else}}
<div class="modal fade" id="recovermodal" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true" style="display: none;">
<div class="modal-dialog">
<div class="loginmodal-container">
<h1>Wachtwoord vergeten</h1><br>
<div id="recover_error" class="alert alert-danger hide">
<strong>Error:</strong>
</div>
<div id="recover_info" class="alert alert-info hide">
<strong>Info:</strong>
</div>
<form id="recoverform">
<input type="email" name="email" placeholder="Email-adres">
<!--<input type="password" name="pass" placeholder="Password">-->
<input type="submit" name="recover" class="login loginmodal-submit" value="Verstuur">
</form>
<div class="login-help">
<a href="#" data-toggle="modal" data-target="#registermodal" onclick="$('#recovermodal').modal('hide');">Registreer</a> - <a href="#" data-toggle="modal" data-target="#loginmodal" onclick="$('#recovermodal').modal('hide');" >Login</a>
</div>
</div>
</div>
</div>
{{/if}}
</template>
答案 0 :(得分:0)
我没有阅读您的指南,但根据我在您的代码中看到的内容,我建议将其留下。你在官方docs.meteor.com有完美的一个。
为了帮助您:如果您想调用某个操作,请不要使用帮助程序观察您的Session元素。助手就像吸气剂 - 用于接收数据。 您想要使用的是客户端事件。
我不会直接给你解决方案,而是简单易读的例子,你应该如何使用Meteor。假设您按下id为“resetPass”的按钮,并且您已声明模态,其中id =“resetPassModal”。
您所做的就是观看活动:
Template.yourTemplateName.events({
"click #resetPass": function(event) {
event.preventDefault();
$("#resetPassModal").show()
}
});
请记住“Multiple open modals not supported” 有关详细信息,请在评论中提出或创建。