Nunjucks多条件三元表达式提示缺少逗号无法运行,求助解决方法
Nunjucks多条件三元表达式提示缺少逗号无法运行,求助解决方法
嘿,我之前也踩过Nunjucks这个多条件三元表达式的坑!其实问题出在Nunjucks的语法解析上,它没办法正确识别你这种无括号的链式if else写法,所以才会一直提示缺少逗号。
给你两个靠谱的解决办法:
方法一:用括号明确嵌套结构
把后面的条件分支用括号包起来,让解析器能清晰识别每个if else的范围,写法如下:
{{ "message one" if condition_1 else ("message two" if condition_2 else "default") }}
这样就能正常解析三个分支的逻辑了,和你想要的效果完全一致。
方法二:用set标签提前定义变量
如果觉得括号嵌套看着累,也可以先用set标签把最终要显示的内容存到变量里,再输出,代码可读性会更好:
{% set displayText = "message one" %} {% if not condition_1 %} {% set displayText = "message two" if condition_2 else "default" %} {% endif %} {{ displayText }}
这种方式不用重复写代码,后续如果要加更多条件,修改起来也更方便。
你说的用if标签会重复代码的问题,用这两种方法都能完美避开,选你看着顺眼的用就行~
备注:内容来源于stack exchange,提问作者Haggishunt56




