我试图使用Meteor.call()并传入两个变量来完成方法
[\u10000-\uEFFFF]
但是,当我调用该方法时,emailVar和passwordVar不会通过。
[\U00010000-\U000EFFFF]
他们未定义?
答案 0 :(得分:0)
你称Meteor方法很好,
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
的输入,那么它将在您的Meteor方法中以params.registerEmail
存在。
希望这有帮助。