Если еще hogan.js

Как я могу использовать if / else в Hogan. У меня есть следующий код. Статус это enum, который имеет два значения ("заблокирован", "разблокирован"). Мне нужно проверить, если статус == "заблокирован", то используется класс = "метка метка-опасность", иначе класс = "метка метка-успех" ". Проблема в синтаксисе, как это сделать.

template: [
           '<p class="repo-language"><span class="glyphicon glyphicon-user">' +
           '</span> <strong>{{fullName}}</strong><span class="pull-right label label-danger">{{status}}</span></p>',
           '<p class="repo-name"><small>{{login}} / {{email}}</small></p>'
           ].join(''),
           engine: Hogan

1 ответ

Решение

Я не знаю, хорошая ли это практика, но функции оцениваются, я выполняю такие условия:

user = {
  name: 'foo',
  status: 'locked',
  statusClass: function() {
    if (this.status == 'locked')
      return 'danger'
    else
      return 'success'
  }
}

var template = Hogan.compile('<span class="label label-{{user.statusClass}}">{{user.status}}</span>')
alert(template.render({user: user}));

http://jsfiddle.net/WL4QC/

Другие вопросы по тегам