Meteor JS - 无法从帮助者那里获得ReactiveVar

时间:2017-10-19 19:34:55

标签: javascript meteor meteor-blaze meteor-accounts

在我的登录模板中阅读ReactiveVar时遇到问题。来源:

Template.login.onCreated(function() {
    this.loginError = new ReactiveVar();
});
Template.login.events({
    'submit #login_form': function(e) {
        e.preventDefault();
    }
});
Template.login.onRendered(function() {
    const instance = this;
    this.$('#login_form').validate({
        errorElement: 'span',
        errorClass: 'input-field_error',
        rules: {
        email: {
            required: false,
            email: false
        },
        password: {
            required: false
        }
    },
    messages: {
        email: {
            required: "Не оставляйте это поле пустым.",
            email: "Проверьте корректность e-mail."
        },
        password: {
            required: "Не оставляйте это поле пустым."
        }
    },
    submitHandler: function(form) {
        var email = $('#login-email').val(),
            password = $('#login-password').val();
        Meteor.loginWithPassword(email, password, function(error) {
            if (error)
                instance.loginError.set(true);
        });
    }
    });
});
Template.login.helpers({
    loginError: function() {
        return Template.instance().loginError.get();
    }
});

我在loginWithPassword中调出错误。在我的html模板中,我有:

{{#if loginError}}
<script>
    Materialize.toast({{loginError}}, 3000);
</script>
{{/if}}

但它不起作用。模板可以在onCreated函数中看到此var与手动设置,如this.loginError.set(true)。 需要你的帮助。

0 个答案:

没有答案