JsRender - вызов хелпера внутри хелпера

Можно ли вызвать помощника в объявлении помощника?

Я определяю двух помощников: someFunctionA и someFunctionB. Я хотел бы использовать someFunctionB и внутри этого вызова someFunctionA

Я пытался позвонить someFunctionA() и this.someFunctionA().

ШАБЛОН

<span>{{:~someFunctionB(123)}}<span>

JS

$.views.helpers({
    someFunctionA: function(value)
    {
        return value++;
    },
    someFunctionB: function(value)
    {
        new_value = someFunctionA(value);

        return "the value is: " + value;
    }
});

person Matías Cánepa    schedule 01.02.2019    source источник


Ответы (1)


Ты можешь сделать

new_value = this.ctxPrm("someFunctionA")(value);

См. www.jsviews.com/#viewobject@ctxprm.

Или вы можете просто сделать

functionA() {
    return value++;
}
functionB() {
    new_value = functionA(value);
    return "the value is: " + value;
}
...
$.views.helpers({
    someFunctionA: functionA,
    someFunctionB: functionB
});
person BorisMoore    schedule 01.02.2019
comment
Привет Борис, спасибо за помощь! Я попробовал ваше предложение, но понял, что this.ctxPrm не является функцией - person Matías Cánepa; 02.02.2019
comment
Я вставил тестовый образец выше, который работает для меня. Отображает значение 124. Вызов this.ctxPrm() находится внутри объявления помощника, указатель которого this является представлением верхнего уровня. Используете ли вы последнюю версию jsrender.js/jsviews.js? В противном случае вы можете создать jsfiddle своего кода? - person BorisMoore; 02.02.2019
comment
Я использовал счетчик коммитов до V1.0: 64, теперь я попробовал 1.0.2, и он работает. большое тебе спасибо - person Matías Cánepa; 14.02.2019