如何检查变量是if块中的对象还是字符串?似乎无法调用{% if ... %}块内的函数.而另一种{{ if() }}语法似乎只适用于内联条件.
我现在解决它来测试变量是一个对象时应该存在的一些对象属性,但应该有一个更好的解决方案.像一个isObject或isString功能
您可以使用自定义过滤器:
var env = new nunjucks.Environment();
env.addFilter('is_string', function(obj) {
return typeof obj == 'string';
});
Run Code Online (Sandbox Code Playgroud)
这就是模板的样子:
{% if item|is_string %}yes{% endif %}
Run Code Online (Sandbox Code Playgroud)
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;Run Code Online (Sandbox Code Playgroud)
<script src="https://mozilla.github.io/nunjucks/files/nunjucks.js"></script>Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
3485 次 |
| 最近记录: |