首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Meter.call()传递变量

Meter.call()传递变量
EN

Stack Overflow用户
提问于 2016-02-10 22:32:19
回答 1查看 406关注 0票数 0

我尝试使用Meteor.call()并传入两个变量来完成该方法

代码语言:javascript
复制
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不会通过。

代码语言:javascript
复制
registerUser: function (email, password) {
  var id = Accounts.createUser({
    email: email,
    password: password
  });
}

他们来的时候还不清楚??

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-02-11 02:18:43

你说流星方法很好,

代码语言:javascript
复制
var emailVar = event.target.registerEmail.value;
var passwordVar = event.target.registerPassword.value;

很可能是你有问题的代码。event.target引用发起事件的DOM元素,在本例中是表单。反过来,registerEmailregisterPassword将是未定义的。

有关使用https://jsfiddle.net/fqp3a1mq/获取表单数据的概述,请参见jQuery。

就您的具体问题而言,一个明确的解决方案是:

代码语言:javascript
复制
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方法中。

希望这能有所帮助。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/35327313

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档