Функция javascript в 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

3
0
3 744
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

Вы можете использовать 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

Другие вопросы по теме