如何为Nunjucks实现的HTML属性设置默认值?
问题:Nunjucks中为空值设置默认值的正确写法
背景
我是一名新手,正在用Prototype.KIT框架结合Nunjucks做交互式HTML原型,代码都写在HTML文件里。
常规元素属性分配写法
label: { text: "Some text" }, name: "someAttributeValue", value: data['someAttributeValue'],
跨页面引用显示值的写法
key: {text: "Some text"}, value: {text: data['someAttributeValue']},
文本拼接的变体写法
key: {text: "Some text"}, value: {text: data['someAttributeValue'] + "some text" + data['someOtherAttributeValue'] + "some text"},
遇到的问题
当someAttributeValue为空时,我想显示默认值(比如"0"),但试了下面几种写法都没用:
无效写法1:
value: data['someAttributeValue' || "0"]
无效写法2:
value: data['someAttributeValue' = "0"]
无效写法3:
value: data['someAttributeValue'] = "0"
正确解决方案
方法1:用逻辑或运算符
直接通过||判断,变量为空时返回默认值:
- 直接赋值给value的场景:
value: data['someAttributeValue'] || "0"
- 在text字段中使用的场景:
value: {text: data['someAttributeValue'] || "0"}
- 文本拼接场景(给多个变量加默认值):
value: {text: (data['someAttributeValue'] || "0") + "some text" + (data['someOtherAttributeValue'] || "默认内容") + "some text"}
方法2:用Nunjucks的default过滤器
这个过滤器专门处理空值替换,比逻辑或更精准——只会在变量是null、undefined或空字符串时生效,不会误替换0、false这类合法值:
value: {text: data['someAttributeValue'] | default("0")}
内容的提问来源于stack exchange,提问作者Jazz
相关产品推荐
相关产品推荐

