1

我想覆盖并使用我自己的表单来重置密码

我已经安装了accounts-ui包我试过以下

Router.route( '/reset-password', {
    path      : '/#/reset-password/:slug',
    name      : 'forgot-password',
    template  : 'ResetPassword',
    waitOn: function(){
        console.log("reset link");
    },
    controller: MainRouteController
});

在 HTML 中

    {{#if resetPassword}}
    <form  id="resetPasswordForm" method="post">
        <input id="resetPasswordPassword" name="password" placeholder="New Password" type="password" >
        <input id="resetPasswordPasswordConfirm" name="password-confirm" placeholder="Confirm" type="password" >
        <input class="btn-submit" type="submit" value="Reset">
    </form>
    {{/if}}

</template>

在 .js 文件中

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

Template.ResetPassword.helpers({
 resetPassword: function(){
  return Session.get('resetPassword');
 }
});

但它仍然显示accounts-ui的resetpassword对话框

4

1 回答 1

4

最好的解决方案是resetPassword使用以下代码更改 url

Accounts.urls.resetPassword = function (token) {
        return Meteor.absoluteUrl('resetPassword/' + token);
    };

在 Iron-router 中使用您的链接

Router.route( '/resetPassword', {
    path      : '/resetPassword/:slug',
    name      : 'forgot-password',
    template  : 'ResetPassword',
    waitOn: function(){
        console.log("reset link");
    },
    controller: MainRouteController
});
于 2014-12-23T16:17:45.920 回答