小编gar*_*ary的帖子

nunjucks函数参数未定义

我已经使用nunjucks几个月,并发现它是一个伟大的模板引擎.然而,今天早上我遇到了一个看似简单的问题,但我根本想不出来.我希望另一组眼睛可以帮助指出解决方案.

问题:如果我将一个函数传递给一个模板,那么传递给该函数的任何参数都是在函数体内未定义的.

值和对象可以毫无问题地传递给模板,如果我传递一个函数,我可以从函数内部登录到控制台(所以我知道函数本身就在那里),但参数都是未定义的.

这最初看起来像是可以通过闭包解决的东西,但是1)我在任何可以找到的例子中看不到闭包,2)当我尝试闭包时,我发现它们也接收到未定义的参数.

在一天的过程中,我将我的代码缩回到最简单的可能情况,但仍然无法弄清楚这一点:

模板:

<div>

<p>{{ value }}</p>

<p>{{ object|pretty }}</p>

<p>{{ func(4) }}</p>

<p>{{ args(4)|pretty }}</p>

<p>{{ local(4) }}</p>

</div>
Run Code Online (Sandbox Code Playgroud)

呈现模板的代码(这是在requirejs中定义的,未显示):

    var nunjucks = require('lib/nunjucks-slim.min'), // v1.3.4
        env = new nunjucks.Environment(null), // global templates
        $tgt = $('#test'),
        local;

    env.addGlobal('value', 3);

    env.addGlobal('object', {
        a: 2
    });

    env.addFilter('pretty', function (obj) {
        return JSON.stringify(obj, null, 2);
    });

    env.addGlobal('func', function (val) {
        return 'func: ' + val;
    });

    env.addGlobal('args', function () {
        return arguments;
    });

    local = function (val) {
        return …
Run Code Online (Sandbox Code Playgroud)

javascript nunjucks

8
推荐指数
1
解决办法
1442
查看次数

标签 统计

javascript ×1

nunjucks ×1