2015-01-05 3 views
3

я пытаюсь использовать @index в рулях следующим образом:не @index работает в рулях

<script id="some-template" type="text/x-handlebars-template"> 
<form class = "pod" action="#" method="post"> 

<table> 
<thead> 
    <th>Name</th> 
    <th>shipment</th> 
    <th>Button</th> 
</thead> 
<tbody> 
    {{#each objects}} 
    <tr> 
     <td>{{name}}</td> 
     <td> <input type="text" id="Shipment" name={{join 'Shipment' name}} /> </td> 
    <td> <input type="submit" name="actionButton" value = "update" > </td> 

    {{#if @index == 2 }}  
    <td> 
    <a href ="http://www.datatables.net/examples/api/select_single_row.html{{name}}"> {{name}} </a> 
    </td> 

    <td> </td> 
     {{/if}} 

{{/each}} 
</tbody> 
</table> 
</form> 
</script> 

Но, кажется, не работает мой, если условие. Может ли кто-нибудь сказать мне, что я делаю неправильно?

ответ

0

К сожалению, вы не можете выполнять сравнения в ручных манипуляторах без специального помощника.

Я не могу вспомнить, где я нашел эту функцию, но у меня была копия я использовал в узле/экспресс-скрипта для установки класса на основе условия:

app.js

var hbs = require('hbs'); 

hbs.registerHelper('ifCond', function (v1, operator, v2, options) { 
    switch (operator) { 
     case '==': 
      return (v1 == v2) ? options.fn(this) : options.inverse(this); 
     case '===': 
      return (v1 === v2) ? options.fn(this) : options.inverse(this); 
     case '<': 
      return (v1 < v2) ? options.fn(this) : options.inverse(this); 
     case '<=': 
      return (v1 <= v2) ? options.fn(this) : options.inverse(this); 
     case '>': 
      return (v1 > v2) ? options.fn(this) : options.inverse(this); 
     case '>=': 
      return (v1 >= v2) ? options.fn(this) : options.inverse(this); 
     case '&&': 
      return (v1 && v2) ? options.fn(this) : options.inverse(this); 
     case '||': 
      return (v1 || v2) ? options.fn(this) : options.inverse(this); 
     default: 
      return options.inverse(this); 
    } 
}); 

шаблон HBS

<div class="{{#ifCond this.order.pushed '==' 'true'}}text-green{{/ifCond}}">Order Status - {{this.order.pushedMessage}}</div> 
Смежные вопросы