0

により、ユーザーのコレクションからアクセスユーザーの名前とprofile_picture私は自分のプロジェクトに2つのコレクションを持っていますユーザー。流星:ユーザー&トピック</p>私はの「_id」を格納「CREATEDBY」フィールドを持っているトピックのコレクションで <p>:ID

*Sample object* 

{ 
    "_id": "SNj6C5fqMntSCaXdL", 
    "opic": "Best Gaming Laptop", 
    "tags": [ 
    "games", 
    "technology", 
    "product" 
    ], 
    "createdBy": "uzsMa4fZgmrrAD9ea", 
    "createdAt": "2016-03-06T21:25:38.672Z" 
} 

ユーザーコレクションには、すべてのユーザーに対してfields'_id '、' name '、' profile_picture_url 'があります。

{ 
    "_id": "uzsMa4fZgmrrAD9ea", 
    "createdAt": "2016-03-03T03:48:05.787Z", 
    "name": "Karan Sarin", 
    "profile_picture_url": "https://pbs.twimg.com/pro2_normal.jpg" 
} 

トピックを繰り返してすべてのトピックのリストを表示し、作成者のプロフィール画像と名前を表示したいと思います。

{{#each topics}} 
    <h2>{{topic_title}}<h2> 
    *Profile picture here* *User's name here* 
{{/each}} 

P.S.私は、トピックのコレクションにユーザーの画像と名前を保存したくありません。必要なときにユーザーのコレクションからアクセスしたいだけです。

答えて

0

あなたが行っていることを達成する最も簡単な方法は、作成時にトピックに格納されるスキーマの一部として名前を付けることです。テンプレート内の{{name}}を呼び出すことができます。プロファイルイメージでは、テンプレートにカスタム変数を作成することをお勧めします。 {{getProfileImage userId}}のようなものです。その後、common.jsのようなファイルにテンプレートヘルパーを書き込んで、userIdに基づいてプロファイルイメージを取得します。

+0

imageURLはユーザーコレクションにあります。 _idだけを使ってURLを取得する方法を教えてください。どのようなコードを書くのですか?ありがとう。 –

0

トピックを作成したユーザーのドキュメントを返すヘルパー関数を実装できます。その後、#with式を使用して、現在のトピックに対応するユーザーコンテキストにデータコンテキストを設定できます。例えば

Template.topicsList.helpers({ 
    user: function() { 
     return Users.findOne({_id: this.createdBy}); 
    } 
}); 

<template name="topicsList"> 
    {{#each topics}} 
     <h2>{{topic_title}}<h2> 
      {{#with user}} 
       <img src="{{profile_picture_url}}" alt="{{username}}"> 
       <strong>{{name}}</strong> 
      {{/with}} 
    {{/each}} 
</template> 

あなたはUsersコレクション内の必要書類にもサブスクライブ注意を払ってください。

関連する問題