如何检查变量是否是 if block 中的对象或字符串?
似乎无法调用 {% if ... %}
block 内的函数。
而其他 {{ if() }}
语法似乎只适用于内联条件。
我现在解决它以测试当变量是对象时应该存在的一些对象属性,但应该有更好的解决方案。类似于 isObject
或 isString
函数
最佳答案
您可以使用 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/