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

如何在Twig中实现未调用replace时自动移除%attr%占位符?

解决方案

你可以通过Twig原生的default过滤器结合replace来实现需求,无需额外扩展:

方法一:提前定义可选变量

先定义一个可选的属性变量,默认值为空字符串,用户未传入时,%attr%会被替换为空,不会显示在输入框中:

{% set custom_attr = custom_attr | default('') %}
{{ '<input type="text" %attr%>' | replace({'%attr%': custom_attr}) | raw }}

方法二:直接在replace中使用default

如果不想额外定义变量,也可以直接在replace的替换值里嵌套default过滤器:

{{ '<input type="text" %attr%>' | replace({'%attr%': custom_attr | default('')}) | raw }}

两种方法效果一致:当用户设置了custom_attr(比如custom_attr = 'id="12"'),输出为<input type="text" id="12">;若用户未设置该变量,输出则是<input type="text" >(多余空格不影响HTML渲染)。

内容的提问来源于stack exchange,提问作者Sjender

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.02 02:40:28