我尝试使用Meteor.call()并传入两个变量来完成该方法
Template.RegisterForm.events({
'submit form': function(event) {
event.preventDefault();
var emailVar = event.target.registerEmail.value;
var passwordVar = event.target.registerPassword.value;
Meteor.call('registerUser', emailVar, passwordVar )
}
});但是,当我调用该方法时,emailVar和passwordVar不会通过。
registerUser: function (email, password) {
var id = Accounts.createUser({
email: email,
password: password
});
}他们来的时候还不清楚??
发布于 2016-02-11 02:18:43
你说流星方法很好,
var emailVar = event.target.registerEmail.value;
var passwordVar = event.target.registerPassword.value;很可能是你有问题的代码。event.target引用发起事件的DOM元素,在本例中是表单。反过来,registerEmail和registerPassword将是未定义的。
有关使用https://jsfiddle.net/fqp3a1mq/获取表单数据的概述,请参见jQuery。
就您的具体问题而言,一个明确的解决方案是:
Template.form.events({
'submit form'(event) {
const $form = $(event.target);
const formData = $form.serializeArray();
const params = {};
event.preventDefault();
// loop over our form data and create a params object for our method
formData.forEach(data => {
params[data.name] = data.value;
});
Meteor.call('methodName', params);
},
});
Meteor.methods({
methodName(params) {
...
},
});使用这种方法,如果您有一个名为registerEmail的输入,那么它将作为params.registerEmail存在于您的Meteor方法中。
希望这能有所帮助。
https://stackoverflow.com/questions/35327313
复制相似问题