Nunjucks 检查对象或字符串

标签 nunjucks

如何检查变量是否是 if block 中的对象或字符串? 似乎无法调用 {% if ... %} block 内的函数。 而其他 {{ if() }} 语法似乎只适用于内联条件。

我现在解决它以测试当变量是对象时应该存在的一些对象属性,但应该有更好的解决方案。类似于 isObjectisString 函数

最佳答案

您可以使用 custom filter :

var env = new nunjucks.Environment();

env.addFilter('is_string', function(obj) {
  return typeof obj == 'string';
});

这就是模板的样子:

{% if item|is_string %}yes{% endif %}

var env = new nunjucks.Environment();

env.addFilter('is_string', function(obj) {
  return typeof obj == 'string';
});

var res = env.renderString("{% if item|is_string %}yes{% endif %}", { item: 'test' });

document.body.innerHTML = res;
<script src="https://mozilla.github.io/nunjucks/files/nunjucks.js"></script>

关于Nunjucks 检查对象或字符串,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29844865/

相关文章:

node.js - 如何将 Nunjucks addfilter 函数放在 app.js 以外的 Express.js 文件中?

javascript - Nunjacks 图标计数宏

javascript - 如何在 HTML 上显示特定的日期格式

javascript - 使用 json 数据、nunjucks 和 for 循环动态迭代表单 radio 输入

javascript - 用Electron.js加载一个Nunjucks模板

for-loop - 无法使用 Nunjucks for 循环获取数组中项目的索引

javascript - 阻止 nunjucks 转义 HTML

html - 在 nunjucks 中循环对象时如何限制迭代次数

javascript - 学习 Nunjucks (Jinja2) 如何正确地将 JSON 数据传递到 View ?

json - gulp-nunjucks-html + gulp-data 未在 watch 上编译