Легче всего было бы добавить пользовательские if_eq
помощника:
Handlebars.registerHelper('if_eq', function(a, b, opts) {
if(a == b) // Or === depending on your needs
return opts.fn(this);
else
return opts.inverse(this);
});
, а затем настроить шаблон:
{{#if_eq this "some message"}}
...
{{else}}
...
{{/if_eq}}
Демонстрация: http://jsfiddle.net/ambiguous/d4adQ/
Если ваш errors
записи не были простыми строками, то вы можете добавить «это какой-сообщение» флаги на них и использовать стандартный {{#if}}
(обратите внимание, что добавление свойства непосредственно в строку не будет работать, что хорошо):
for(var i = 0; i < errors.length; ++i)
errors[i] = { msg: errors[i], is_status: errors[i] === 'some message' };
и:
{{#if is_status}}
<li>Status</li>
{{else}}
<li>{{msg}}</li>
{{/if}}
Демо: http://jsfiddle.net/ambiguous/9sFm7/
Если '{{#if_eq этого "какое-то сообщение"}}' работ, почему не 'это. someProperty'? Не могу заставить это работать. – raffian
@raffian: У вас есть пример (возможно, модификация одного из скриптов в ответе) того, что вы пытаетесь сделать? –
.. строил скрипку, а затем заметил, что мой пользовательский помощник закончил '{{/ if}}', а не '{{/ if_eq}}', невероятно, потратил впустую на это, но спасибо, что открыл мои глаза:) – raffian