留下未定义的nunjucks变量未经修改

时间:2017-02-09 18:22:41

标签: templating nunjucks

这很好用:

nunjucks.renderString('Hello {{ username }}', { username: 'James' });

并给我'Hello James'。如果我遗漏username,如下所示:

nunjucks.renderString('Hello {{ username }}', { noUsername: 'James' });

nunjucks给了我'Hello '。我试图定义的行为是一种允许我保留未定义的未定义变量的方法,以便

nunjucks.renderString('Hello {{ username }}', { noUsername: 'James' });

给了我'Hello {{ username }}'。有没有办法使用自定义过滤器,宏,模板,更智能的东西来实现这一目标?我想避免滚动我自己的语法(自定义转义字符),并尽可能保持它更惯用。我使用renderString作为一个简单示例,但我想要将其实际用于整个模板(通过render)。

1 个答案:

答案 0 :(得分:0)

原来{% raw %}已经在nunjucks中构建a fantastic tag,可以用来处理你知道你的变量将提前未定义的情况。例如,当这样使用时:

nunjucks.renderString('Hello {{ username }} {% raw %}{{ iDoNotExist }}{% endraw %}',
    { username: 'James' });

它给出了以下输出:

'Hello James {{ iDoNotExist }}'