2016-05-03 17 views
-3

投稿とコメントの2つのコレクションを作成しました。さて、すべてのコメントはすべての投稿に表示されます私は "彼"の投稿と1つのコメントをどのように結びつけるのか分かりません。私は彼のコメントの中に投稿のIDを保存すると思ったが、後でそれらの2つをどのように結び付けるのか分からない。ここにGitHub上の私のアプリケーションのリンクです(それは小さなアプリであり、それは明確なコードを持っています)。ありがとう!投稿のため enter link description here2つのコレクションを流星でつなぐ(投稿のコメント)

メインコレクション

Predlozi = new Mongo.Collection('BazaPredlozi'); 

// ------------------------------------------------------------------------ 
if (Meteor.isServer) { 
    Meteor.startup(function() { 

    }); 

    Meteor.publish('BazaPredlozi', function() { 
     return Predlozi.find(); 
    }); 



    /************************************/ 
     Accounts.onCreateUser(function (options, user) {  

       user.profile = options.profile ? options.profile : {}; 
       user.profile.неискоришћениГласови = 3; 
       user.profile.nivo = 'smrtnik'; 
       return user; 
     });  

/********************************/ 
}; 


//-------------------------------------------------------------------------- 

if (Meteor.isClient) { 


    Meteor.subscribe('BazaPredlozi'); 


    Template.body.helpers({ 
     Podaci: function() { 
     return Predlozi.find(); 
     }, 
     YouShallNotPass: function() { 
     var user = Meteor.user(); 
     var nivo = user && user.profile && user.profile.nivo; 
     return nivo === 'supermen'; 
    }, 

}); 

    Template.UnosPredloga.events({ 

    'submit .Prijava': function(event) { 
     event.preventDefault(); 
     var naslov = event.target.наслов.value; 
     var opis = event.target.опис.value; 
     var korisnik = Meteor.user()._id; 

      Predlozi.insert ({ 
      наслов : naslov, 
      опис : opis, 
      унео: korisnik , 
      Број_Гласова: 0,   
      Време_Уноса: new Date() 
      });  
      event.target.наслов.value = ""; 
      event.target.опис.value = ""; 
      return false;   
    } 
    }); 

// ------------- 
} 

メインHTML

<head> 
    <title>Видео конференције</title> 
</head> 

<body style="margin: 0;"> 
<!-- --> 
    <div class="kontejner"> 
     <header> 
     <h1>Пријаве за видео-конференцију</h1> 
     {{#if currentUser}}  
     {{> UnosPredloga}} 
     {{/if}} 

     </header> 
      {{> templateSkočko}} 
     <ul style="border: 3px solid pink; margin: 5px;"> 
      {{#each Podaci}} 
      <div style="border: 3px solid red; margin: 5px;">    
      {{> PodaciT}} 

      {{#if currentUser}} 
       {{> glasajDugme}} 
       {{> KomentarForma}} 
        {{#each komentari}} 
        {{> PrikazKomentara}} 
        {{/each}} 

      {{/if}}  

      {{#if YouShallNotPass}} 
       {{> obrišiDugme}} 
       {{/if}} 

      </div> 
      {{/each}}   
     </ul> 
    </div> 
<!-- --> 
<div style="background-color: blue; color: red;"> {{> loginButtons}} </div> 
</body> 

ポストインサートテンプレート

<template name="UnosPredloga"> 
    <form class="Prijava"> 
      <input type="text" name="наслов" placeholder="Наслов" id="NaslovPredloga" required > 
      <input type="text" name="опис" placeholder="Опис" id="OpisPredloga" required>   
      <input type="submit" value="Пошаљи" id="DugmeZaUnosPredloga"> 
     </form> 
</template> 

表示投稿テンプレート

​​

コメント集

Komentari = new Mongo.Collection('KomentariKorisnika'); 

// ------------------------------------------------------------------------ 
if (Meteor.isServer) { 
    Meteor.startup(function() { 

    }); 

    Meteor.publish('KomentariKorisnika', function() { 
     return Komentari.find(); 
    }); 

/********************************/ 
}; 


//-------------------------------------------------------------------------- 

if (Meteor.isClient) { 


    Meteor.subscribe('KomentariKorisnika'); 


    Template.body.helpers({ 
     komentari: function() { 
     return Komentari.find(); 
     }, 
}); 

    Template.KomentarForma.events({ 

    'submit .KomentarNaPredlog': function(event) { 
     event.preventDefault(); 
      Komentari.insert ({ 
      коментар : event.target.datKomentar.value, 
      коментарисао: Meteor.user()._id,   
      Време_Уноса: new Date(), 
      ИДпредлогаКојемКоментарПрипада: this._id, 
      });  
      event.target.datKomentar.value = ""; 
      return false;   
    } 
    }); 

// ------------- 
} 

コメント入力teplate

<template name="KomentarForma"> 

    <form class="KomentarNaPredlog"> 
      <input type="text" name="datKomentar" placeholder="Коментар" id="komentarčić" required >      
      <input type="submit" value="Коментариши" id="DugmeZaUnosPredloga"> 
     </form> 

</template> 

Displaコメントテンプレート

<template name="PrikazKomentara"> 
<div> 
    <div class="prikaze"><p>Коментар:</p>{{коментар}}</div> 
    <div class="prikaze"><p>Коментарисао:</p>{{коментарисао}}</div> 
</div> 
</template> 
+0

コメントには、自分のIDとそれが属する投稿の外部IDが必要です。 – Martin

+0

ええ、私は彼が所属している投稿のIDを簡単に取って、後でその記事のすぐ隣にする方法を簡単に入れます。 –

答えて

1

投稿ごとに「コメント」コレクションをフィルタリングする必要があります。同じコレクションに対して複数のサブスクリプションがある場合、そのデータは1つのクライアント側コレクションにマージされます。

コードの関連部分を投稿すると、より多くのお手伝いをすることができます。 GitHub URLを追加しても関連するコードが掲載されるとはみなされません。

+0

あまりにも多くのコードをここに入れるには:/ –

+0

関連する部分をポストするだけです。同様に、このような種類のデータを購読する方法、コードがそのデータをレンダリングする方法も同様です。 2つか3つの関数/テンプレートが良いスタートです。 – aedm

+0

私は、編集した質問を参照してください、ありがとう! –

関連する問題