2013-08-12 3 views
1

я написал два помощника, а именно i18n и toLowerCase следующим образом:Как использовать несколько помощников в рулях

/* 
* Returns lowercase of a string 
*/ 
Handlebars.registerHelper('toLowerCase', function(value) { 
    if (value && typeof value === 'string') { 
    return value.toLowerCase(); 
    } else { 
    return ''; 
    } 
}); 

У меня есть строка, которая должна быть преобразована в нижний регистр, а затем должен быть локализован с помощью помощника i18n. Оба этих помощника работают/работают нормально.

Эти линии работают нормально. (Испытано)

{{toLowerCase status }} 
{{i18n status}} 

Но я хочу что-то вроде this.I попытался это:

{{i18n {{toLowerCase status }} }} 

Но это бросает синтаксическую ошибку как неперехваченным Ошибка: Синтаксическая ошибка в строке 88:

..div>  {{ i18n {{toLowerCase stat 
----------------------^ 
Expecting 'CLOSE', 'CLOSE_UNESCAPED', 'STRING', 'INTEGER', 'BOOLEAN', 'ID', 'DATA', 'SEP', got 'OPEN' 

Любые предложения?

+0

Похожие SO вопрос : http://stackoverflow.com/questions/14781916/is-it-possible-with-handlebars-to-nested-helpers-inside-the-options-hash – tsiki

ответ

1

Вы можете попробовать использовать https://github.com/mateusmaso/handlebars.nested (помните, что он позволяет использовать только один уровень вложенности). Насколько мне известно, для Handlebars нет встроенной поддержки Handlebars, хотя вы можете использовать некоторые из обходных решений в вопросе, который я связал в комментариях.

0

Handlesbars поддерживает Subexpressions сейчас, так что вы можете просто сделать:

{{i18n (toLowerCase status) }} 

(заметьте, те круглые скобки(), а не фигурные скобки {}, для внутреннего помощника)

Смежные вопросы