2016-01-19 2 views
0

Я зарегистрировал два помощника с рулю именно «внешний» и «внутренний» и в моем шаблоне у меня есть следующиевложенная помощник руль кидает ошибки

{{#outer (inner data)}} 
{{/outer}} 

, но некоторые, как внутренний помощник выдает ошибку на консоли говоря «options.inverse не является функцией»

Я использую рули 3.0.3

Может кто-нибудь сказать мне, где я делаю ошибку.

Я использую следующий код

Handlebars.registerhelper('outer',function(primary, options){ 
    If(primary){ 
     return options.fn(this); 
    }else{ 
     return options.inverse(this); 
    } 
}); 

Handlebars.registerhelper('inner',function(primary, options){ 
    If(primary){ 
     return options.fn(this); 
    }else{ 
     return options.inverse(this); 
    } 
}); 
+0

Кажется, работает https://jsfiddle.net/nikoshr/465pys5x/ – nikoshr

+0

@nikoshr да, но вы не использовали опции в функции обратного вызова. Я сталкиваюсь с проблемой при использовании опций. –

+0

Ну, тогда отредактируйте свой вопрос, чтобы предоставить достаточно подробностей, чтобы ответить на ваш вопрос. – nikoshr

ответ

0

В inverse функция присутствует только для block helpers.

Вы используете внешний как вспомогательный блок, но внутренний как обычный, и поэтому он терпит неудачу только для внутреннего помощника.

+0

Итак, есть ли какое-либо решение для этого или мне нужно изменить мой внутренний помощник. –

+0

Вам нужно изменить свой помощник или шаблон в зависимости от того, чего именно вы пытаетесь достичь. – ekuusela