在我的登录模板中阅读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)。 需要你的帮助。