我有一个模态,它有使用这个数据数组的树枝渲染的按钮"buttons" => [ [ "title" => "Copy", "type" => "button", "attributes" => [ "data-action" => "confirm" ], "class" => "btn-primary", ], [ "title" => "Cancel", "type" => "button", "attributes" => [ "aria-label" => "Close" ], "class" => "btn-light", ]]如果已经有一个属性为“aria-labal='Close'”的按钮,我希望模式不在顶角显示 [x],因此我添加了这组嵌套的 if 语句和 for 循环。{% set hideBtnClear = false %}{% for btn in modal.buttons %} {% if btn.attributes %} {% for key, value in btn.attributes %} {% if key == "aria-label" and value == "Close" %} {% set hideBtnClear = true %} {% endif %} {% endfor %} {% endif %}{% endfor %}{% if hideBtnClear == false %} [x] <--{% endif %}它有效但不是很优雅。有什么办法可以改善它吗?
2 回答
哔哔one
TA贡献1854条经验 获得超8个赞
您也可以使用过滤器filter
来解决这个问题
{% if btns|filter(v => v.attributes['aria-label']|default == 'Close') | length == 0 %} [ X ] {% endif %}
使用not
代替== 0
也有效
{% if not btns|filter(v => v.attributes['aria-label']|default == 'Close') | length %}
白猪掌柜的
TA贡献1893条经验 获得超10个赞
变化不大,但如果您知道 中所需的键btn.attributes,则只需检查此键是否存在及其值:
{% set hideBtnClear = false %}
{% for btn in modal.buttons %}
{% if btn.attributes['aria-label'] is defined and btn.attributes['aria-label'] == "Close" %}
{% set hideBtnClear = true %}
{% endif %}
{% endfor %}
{% if hideBtnClear == false %}
[x] <--
{% endif %}
- 2 回答
- 0 关注
- 144 浏览
添加回答
举报
0/150
提交
取消