You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何将拆分的出生日期数据传入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

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.27 10:42:54