php - Twig 在 for 循环中添加空格
问题描述
我正在向现有项目添加一个功能,所以我必须使用 twig。我正在显示一个单词的翻译,所以我有一个对象列表。该对象具有多个属性。
{% for trans in Translations.dictionaryList[0].wordTranslationsList|sortLangAndFreqClass %}
{% if currentLanguage is not same as (trans.targetLanguage) %}
{% set currentLanguage = trans.targetLanguage %}
{% set first = TRUE %}<b> {{- Languages[(currentLanguage |upper)] -}}: </b>
{% endif %}
{% if not first %}, {% endif %}
<a href="{{'res'|url({'view_language' : view_language, 'corpusId': trans.corpus, 'word' : trans.translation})}}">{{- trans.translation -}}</a> ({{- trans.freqClass -}})
{% set first = FALSE %}
{% endfor %}
输出如下:丹麦语:hus (10) 英语:home (6) , business (7) , family (7) , live (8) , house (8)
但我想删除逗号前的空格,所以应该是:
丹麦语:hus (10) 英语:home (6), business (7), family (7), live (8), house (8)
我找到了将所有内容写在一行中的解决方案,但这非常丑陋且无法阅读。有没有其他方法可以解决这个问题?
解决方案
我相信这不是树枝问题,而是 html 的工作原理。在常规 html 中,如果在任何字符之前有换行符,它将被转换为常规空格。
<p>something
,
another thing</p>
将显示为
something , another thing
现在,查看 twig docs[1],我发现loop
任何循环中都有一个隐式变量(就像你正在使用的 for 一样)。这个变量的两个属性是loop.first
和loop.last
,它告诉你当前元素是第一个还是最后一个元素。
你可以,而不是使用第一种方法,使用最后一个元素并有这样的东西
{% for trans in Translations.dictionaryList[0].wordTranslationsList|sortLangAndFreqClass %}
{% if currentLanguage is not same as (trans.targetLanguage) %}
{% set currentLanguage = trans.targetLanguage %}
<b> {{- Languages[(currentLanguage |upper)] -}}: </b>
{% endif %}
<a href="{{'res'|url({'view_language' : view_language, 'corpusId': trans.corpus, 'word' : trans.translation})}}">{{- trans.translation -}}</a> ({{- trans.freqClass -}}){% if not loop.last %}, {% endif %}
{% endfor %}
请注意我是如何{% if not loop.last %}, {% endif %}
在<a>
标签行附加的。
我不能保证它会起作用,因为我不知道如何在这里尝试,但试一试。
[1] - https://twig.symfony.com/doc/2.x/tags/for.html#the-loop-variable
推荐阅读
- matlab - Matlab中GUI上的恒定图形轴范围
- powershell - 通过 power-shell 脚本进行远程 IBM MQ 监控
- chainer - 为什么我们需要在 Chainer 中分配 y 的 grad ?
- xcode - 在 GitHub 上看不到“在 Xcode 中打开”按钮
- ios - 如何检测从html字符串创建的NSAttributedString中的锚标记链接点击
- android - 无法创建类的实例 - ViewModel
- c++ - 没有尖括号的模板类实例化
- git - git push 显示 git 注释
- r - 在 R 中创建引用
- functional-programming - 函数式编程 if 语句