2016-06-08 54 views
0

我正在使用本指南來實現密碼重置。當用戶點擊生成的鏈接時,它應該在Bootstrap中打開我的「resetPassword」模式。密碼恢復助手不會打開我的流星模式

http://blog.benmcmahen.com/post/41741539120/building-a-customized-accounts-ui-for-meteor

在我的客戶\ 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

我沒看過你的指導,但根據我在你的代碼中看到我會建議離開它。你有一個完美的官方docs.meteor.com

爲了幫助您:如果您想要調用某個操作,請不要使用助手來觀察Session元素。幫手就像獲取數據一樣。 你想使用的是客戶端事件。

我不會給你直接的溶劑,但簡單易讀的例子,你應該如何與流星行爲。假設您按下id =「resetPass」的按鈕,並且您已聲明瞭id =「resetPassModal」的模式。

你在看什麼事件:

Template.yourTemplateName.events({ 
    "click #resetPass": function(event) { 
     event.preventDefault(); 
     $("#resetPassModal").show() 
    } 
}); 

請記住,「Multiple open modals not supported」 欲瞭解更多詳情請在評論或創建。