Javascript Nunjucks 中的函数

Javascript function in Nunjucks

所以我在 Nunjucks 文档中找到了这个:

函数调用

如果您已将 javascript 方法传递给您的模板,您可以正常调用它。

{{ foo(1, 2, 3) }}

但我似乎无法正常工作,我尝试将我的函数放在 html 页面的 <script> 标签中,但它不起作用。

我也试过将它与数据一起传递给渲染函数:

{
    stuff: function (string, length) {
        while (string < length) {
            string = "0" + string
        }
    }
}

然后我得到:无法调用 data["stuff"], which is undefined of falsey

您可以使用 addGlobal(参见 g)或传递函数进行渲染(参见 f)。

var nunjucks  = require('nunjucks');
var env = nunjucks.configure();

function f (s) {
    return s + s; 
}

function g (s) {
    return s + s + s; 
}

env.addGlobal('g', g);

var res = nunjucks.renderString('{{f("OK")}} {{g("ok")}}', {f: f});    
console.log(res);

//Output: OKOK okokok