密码恢复帮助程序不会使用meteor打开我的模态

时间:2016-06-08 18:35:12

标签: javascript twitter-bootstrap meteor

我使用本指南实现密码重置。当用户点击生成的链接时,它应该打开我的" 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>

1 个答案:

答案 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” 有关详细信息,请在评论中提出或创建。