繁体   English   中英

twig:在HTML属性内的三进制中连接两个字符串

[英]twig:concatenate two strings in a trinary inside HTML attribute

<a class="menu-item" href="{{(haveSubMenu == 'yes')?'#':(item.url|e ~ (item.hash ? item.hash|e : ''))}}"></a>

我想做的很简单,如果菜单项具有子菜单,则其href应该是# ,如果没有,则获取其URL。 但是上面的代码不起作用,因为当~将其操作数转换为字符串时,它将item.url所有& s转换为&amp; ,这会断开链接。

那么写这个的正确方法是什么?

尝试使用autoescape标签对所有代码禁用autoscape。

因此,使用以下代码:

{% autoescape false %}
    Everything will be outputted as is in this block
<a class="menu-item" href="{{(haveSubMenu == 'yes')?'#':(item.url|e ~ (item.hash ? item.hash : ''))}}"></a>
{% endautoescape %}

请参阅此twigfiddle URL中的工作代码(以及带有示例的运行代码)。

如果这不符合您的预期,请随意提供一些测试数据。

希望有帮助

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM