如何将拆分的出生日期数据传入Nunjucks宏?
在GOV.UK Prototype Kit中拼接出生日期并传入Nunjucks宏
方法1:直接在宏参数中拼接
你可以直接在value.text的位置,把日、月、年三个字段用字符串拼接的方式组合起来,Nunjucks支持在模板中直接进行字符串运算:
{ key: { text: "Date of birth" }, value: { text: data['date-of-birth-day'] + ' ' + data['date-of-birth-month'] + ' ' + data['date-of-birth-year'] }, actions: { items: [ { href: "#", text: "Change", visuallyHiddenText: "birthday" } ] } }
方法2:提前定义变量优化可读性
如果直接拼接的代码看起来太繁琐,可以先在模板顶部定义一个变量存储完整的出生日期,之后再传入宏中:
{# 先定义拼接好的出生日期变量 #} {% set fullDateOfBirth = data['date-of-birth-day'] + ' ' + data['date-of-birth-month'] + ' ' + data['date-of-birth-year'] %} {# 然后在宏中使用这个变量 #} { key: { text: "Date of birth" }, value: { text: fullDateOfBirth }, actions: { items: [ { href: "#", text: "Change", visuallyHiddenText: "birthday" } ] } }
方法3:处理空值的进阶写法(可选)
如果担心用户未填写完整日期导致显示多余空格,可以先收集非空的日期部分再拼接:
{# 收集非空的日期片段 #} {% set dobParts = [] %} {% if data['date-of-birth-day'] %}{% do dobParts.push(data['date-of-birth-day']) %}{% endif %} {% if data['date-of-birth-month'] %}{% do dobParts.push(data['date-of-birth-month']) %}{% endif %} {% if data['date-of-birth-year'] %}{% do dobParts.push(data['date-of-birth-year']) %}{% endif %} {# 用空格拼接成完整日期 #} {% set fullDateOfBirth = dobParts.join(' ') %} {# 传入宏中 #} { key: { text: "Date of birth" }, value: { text: fullDateOfBirth }, actions: { items: [ { href: "#", text: "Change", visuallyHiddenText: "birthday" } ] } }
内容的提问来源于stack exchange,提问作者Alex E
相关产品推荐
相关产品推荐

