【问题标题】:JsRender - call a helper within helperJsRender - 在助手中调用助手
【发布时间】:2019-02-01 17:12:05
【问题描述】:

是否可以在助手声明中调用助手?

我定义了两个助手:someFunctionAsomeFunctionB。我想使用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;
    }
});

【问题讨论】:

    标签: jsrender


    【解决方案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
    });
    

    【讨论】:

    • 您好鲍里斯,感谢您的帮助!我已经尝试过你的建议,但我得到了 this.ctxPrm 不是函数
    • 我在上面插入了一个测试样本,它对我有用。呈现“值为 124”。 this.ctxPrm() 调用在帮助器声明中,其 this 指针是顶层视图。你使用的是最新的 jsrender.js / jsviews.js 吗?否则,您可以创建代码的 jsfiddle 吗?
    • 我使用的是 V1.0 之前的提交计数器:64,现在我尝试了 1.0.2 并且它正在工作。非常感谢
    猜你喜欢
    • 1970-01-01
    • 2010-12-25
    • 2016-09-02
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多