2017-02-10 5 views
1

私は小さな招待システムを作っています。(ユーザーはアイリーンコードで友人に電子メールを送信します - >友人は誰もが行くことができる公開ウェブサイトをクリックします)>招待コードをテキストフィールドと流星がこのコードを検索してコードがすべて見つかったら、彼は続けることができますが、流星がコードを見つけられない場合、彼は1人のランダムなインターネットユーザーであり、続けることができません。Meteor Inviteシステムの作成方法

だから、コレクションのデータを入力した値

これはすでにjsファイルです。

Template.Invite.onCreated(function() { 
    this.subscribe('invites'); 
}); 

Template.Invite.events({ 
    'submit .Invite'(event) { 
    event.preventDefault(); 
    var Invite = event.target.Invite.value; 

    } 
}); 

Template.Invite.helpers({ 
    results: function(){ 
     return Invites.find({ 
      code: Session.get('Invite'), 

      if (Invite = Invite) 
      { 
      FlowRouter.go('/'); 
      } 


     }); 
    } 
}); 

はすでになく、検索とは比較作品main.js

Meteor.publish("invites", function() { 
     return Invites.find(); 
    }) 

と重要ではないHTML招待コレクションで

<template name="Invite"> 
    <form class="Invite" > 
      <input type="text" name="Invite" placeholder="Invite Code" /> 
      <input type="submit" value="Bestätigen" /> 
     </form> 
</template> 

挿入に一部を公開マイ

ありがとうございます;)

答えて

3

私はいくつかの招待状を作成しましたこれが私のやり方です。ユーザーが招待状を送信すると

、あなたがこのような招待コレクションに新しい文書を作成:ユーザーはあなたが彼らの招待コードをつかむメソッドを呼び出す必要がありサインアップしようと次に

import { Random } from 'meteor/random'; 

const code = Random.hexString(16); 

invitation = { 
    'code': code, 
    'sentTo': '[email protected]', 
    'accepted': false, 
} 

とあなたがURLにパラメータとして招待コードを渡すことができ、招待メールを送信する際に、より良いご招待システムを作るためにデータベース

Meteor.methods({ 
    'acceptInvitation'(code) { 
     check(code, String); 

     // find invitation in database 
     let invitation = Invitations.findOne({ 'code': code}); 

     //check if invitation exists and if it hasn't already been accepted 
     if(invitation && invitation.accepted == false) { 
      //update invitation to now be accepted 
      Invitations.update(
       { '_id': invitation._id}, 
       { $set: { accepted: true } 
      ); 
      return true; 
     } else { 
      throw new Meteor.Error('invalid', 'Your invitation code is not valid'); 
     } 
    } 
}); 

のコードと比較します。ユーザーが招待状リンクをクリックすると、URLからコードを取得し、自動的に登録フォームに挿入することができます。これにより、コピー/貼り付け時に間違いを防ぐことができます。

+0

これは一般的で効果的なパターンです。 '/ invitation /:_ id'のような招待状リンクのルートを使用すると、誰かに招待状リンクを簡単に送ることができます。私は 'Invid'オブジェクトの' _id'を一意の招待リンクとして使用します。また、リンクが何回クリックされているかをトラバース率の測定に役立てるためにクリックしてください>クリック>登録 –

+0

こんにちは@Seanこのコードは本当にありがとうございます(流星/ランダムパッケージですか?) – Michael

+0

No prob - はい、それです:https://docs.meteor.com/packages/random.html – Sean

関連する問題