Search code examples
javascripttemplatesmeteormeteor-blazespacebars

Compare template helper values in Spacebars {{#if}} block


I need to compare two template helper values that are located in nested templates. I was wondering if there is an easy way to compare two template helpers (one from the parent template) in an {{#if}} statement like so:

{{#each bids}}
  {{#if bid.price===../job.price}}
    <span>some text</span>
  {{else}}
    <span>some other text</span>
  {{/if}}
{{/each}}

If you can't do this, I guess the other option is to use Template.parentData in a new template inside the each block? I'm not opposed to this, just the way I outlined above would be much faster and simpler if it's possible. Thanks.


Solution

  • Something like this might work for you:

    Template.registerHelper('_', function(){
        return _
    })
    
    {{#each bids}}
      {{#if _.isEqual bid.price ../job.price}}
        <span>some text</span>
      {{else}}
        <span>some other text</span>
      {{/if}}
    {{/each}}
    

    As a bonus, you not only get _.isEqual, but all _.* functions.