Search code examples
meteormeteor-blaze

Creating UI comment component with blaze


I'm trying to create a comments component with Blaze but i don't know how to handle the replies.

This is the schema for the 'comment' element:

_id, authorId, message, replies (those are comment ids), isReply (boolean).

Then I created a template with html

{{#each message}}
 <div class="message">
   <h2>{{author}}</h2>
   <p>{{message</p>
   <a class="button">Reply</a>
 </div>
     {{#each replies}}
       <div class="message">
         <h2>{{author}}</h2>
         <p>{{message</p>
         <a class="button">Reply</a>
       </div>
     {{/each}}
{{/each}}

Well, how do I handle the replies of the replies? Any Idea?


Solution

  • You need to use the templates recursively! An example

    In your case, something like the following:

    {{#each message}}
     <div class="message">
       <h2>{{author}}</h2>
       <p>{{message</p>
       <a class="button">Reply</a>
     </div>
         {{#each replies}}
           {{> reply}}
         {{/each}}
    {{/each}}
    
    <template name="reply">
      <div class="message">
      <h2>{{author}}</h2>
      <p>{{message</p>
      <a class="button">Reply</a>
      {{#each replies}}
        {{> reply}}
      {{/each}}
    </div>
    </template>
    

    You'll need a replies helper for the reply template that gets the replies to that reply.