flylib
flylib

Reputation: 1138

Rendering a template when value in Mongo equals certain value

So I want to render a template that will hold an image when the value of the score in my Players collection equals 500, it right now doesn't render at all even when a player score equals 500, do I need an if statement in my handlebars or something else?

Relevant code I made so far

client

    foo.html

    <body>
    <div class="container">
    {{> header}}
    <div class="row-fluid">
    <div class="span8">
    {{> leaderboard}}
    </div>
    <div class="span4">
    {{> champion}}
   </div>
   </div>
   </div>
   </body>


   <template name="champion">
   {{#each winners}}
     {{> winner}}
   {{/each}} 
   </template>


   <template name="winner">
  <img src="gold.jpg" alt="winner">
  </template>


 foo.js

 Template.champion.winners = function () {
   return Players.find({score: 500});
  };

Upvotes: 0

Views: 65

Answers (1)

Roy
Roy

Reputation: 3624

You marked the Template code as being on the server in your question, but the code with Template.winner.winners should be on the client, not the server. This is most likely the problem. Also, you have two templates named winner, although Meteor should throw an error on the command line if you have duplicate template names.

Finally, this isn't what you asked, but it may come handy for debugging too. You can detect whether the cursor is empty in your templates using Handlebars {{else}}:

 {{#each winners}}
      {{> winner}}
 {{else}}
      no winners!
 {{/each}}

Upvotes: 2

Related Questions