2

meteor 0.5.7 を使用して (Parties の例に従って)、client、server フォルダーを作成し、それぞれの client.js および server.js ファイルをそれらに配置しました。自動公開、安全でない削除、および電子メール パッケージの追加を行いました。Meteor.call を起動できません。デバッグすると、バイパスされることが示されます。これを大まかにフォローしています - http://goo.gl/MV26m - それでも理解できません。

// server.js
Meteor.startup(function () {
  process.env.MAIL_URL = '...'; // using mailgun URL
});

Meteor.methods({
   call_me: function (options) {
     var options = options || {};
     Email.send({
      from: options.from,
      to: options.to,
      replyTo: options.from || undefined,
      subject: options.subj,
      text: options.msg,
     });
   },
});

// client.js
Template.form.events({
 'click .submit' : function (event, template) {
   var from = template.find("#from").value;
   var to = template.find("#to").value;
   var subj = template.find("#subj").value;
   var msg = template.find("#msg").value;
   var options = { from: from, to: to, subj: subj, msg:msg };

   Meteor.call('call_me', options, function(err, data) {
    if (err)
     console.log(err);
   });
 }
});

// client.html - the gist of it
<body>
  {{> page }}
</body>
<template name="page">
  {{> form }}
</template>
<template name="form">
  <form ....
</template>

最後に、私は実際に Meteor.methods({...}); を持っていました。クライアント/サーバーフォルダーの外のmodel.jsファイルに座っています-それでもメールを送信したり、Meteor.callメソッドを呼び出したりしませんでした。前述の添付リンクのスタブの概念に頭を悩ませようとしていて、呼び出しを関数内にラップして呼び出しましたが、まだアクティビティがありませんでした。アドバイスをありがとう。

4

1 に答える 1

1

あなたの要点を試しました。タグを削除して<form>コメントアウトすることで解決Process.env.MAIL_URLしました。この<form>タグは、ボタン クリックに対するイベント トリガーをブロックしています。

于 2013-02-28T05:02:12.730 に答える