2016-06-08 14 views
0

Ich benutze diese Anleitung, um ein Passwort zurückgesetzt zu implementieren. Wenn der Benutzer auf den generierten Link klickt, sollte er mein "resetPassword" -Modal in Bootstrap öffnen.Password Recovery-Helfer öffnet mein Modal nicht mit Meteor

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

In meinem Klienten \ main.js habe ich diesen Code:

Template.recoverpopup.helpers({ 
    resetPassword : function(t) { 
     return Session.get('resetPassword'); 
     Modal.show('reset_password'); 
    } 
}); 

if (Accounts._resetPasswordToken) { 
    Session.set('resetPassword', Accounts._resetPasswordToken); 
} 

Das Resetpassword Session-Variable einen Wert über die Konsole zurück. Ich bin neu bei Meteor und ich denke noch immer darüber nach, aber ich denke, die Funktion läuft nicht.

Template Code:

<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> 

Antwort

0

Ich habe nicht gelesen Ihren Führer, sondern nach dem, was ich in Ihrem Code sehe ich würde es verlassen vorschlagen. Sie haben perfekte am offiziellen docs.meteor.com.

Um Ihnen zu helfen: Wenn Sie eine Aktion aufrufen möchten, beobachten Sie nicht Ihr Session-Element mit Helfer. Helfer sind wie Getter - um Daten zu empfangen. Was Sie verwenden möchten, ist ein clientseitiges Ereignis.

Ich werde Ihnen keine einfache Lösung geben, aber einfaches und lesbares Beispiel, wie Sie sich mit Meteor verhalten sollten. Nehmen wir an, Sie drücken den Button mit id = "resetPass" und Sie haben modal mit id = "resetPassModal" deklariert.

Was Sie ein Ereignis beobachtet:

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

Beachten Sie, dass "Multiple open modals not supported" Weitere Details in den Kommentaren fragen oder erstellen.

Verwandte Themen