for
遍歷數(shù)組、slice等對象。
for
用于循環(huán)訪問數(shù)組中的每個項目,從而使該項目在上下文變量中可用。
例如,要顯示archiveList
中提供的文檔列表:
{% for item in archives %}
<li class="item">
<a href="/archive/{{item.Id}}" class="link">
<h5 class="title">{{item.Title}}</h5>
</a>
</li>
{% endfor %}
還可以輸出for
循環(huán)的計數(shù),以及剩余數(shù)量,還可以使用pluralize
判斷數(shù)量是否是復數(shù)。如:
{% for item in archives %}
<li class="item">
<a href="/archive/{{item.Id}}" class="link">
<h5 class="title">第{{ forloop.Counter }}篇,剩余{{ forloop.Revcounter}}篇,{{ forloop.Revcounter|pluralize:"多于1篇" }}:{{item.Title}}</h5>
</a>
</li>
{% endfor %}
for
還可以使用reversed
翻轉數(shù)組,sorted
按int
排序數(shù)組。如:
{% for item in archives reversed %}
<li class="item">
<a href="/archive/{{item.Id}}" class="link">
<h5 class="title">{{item.Title}}</h5>
</a>
</li>
{% endfor %}
{% for item in archives sorted %}
<li class="item">
<a href="/archive/{{item.Id}}" class="link">
<h5 class="title">{{item.Title}}</h5>
</a>
</li>
{% endfor %}
{% for item in archives reversed sorted %}
<li class="item">
<a href="/archive/{{item.Id}}" class="link">
<h5 class="title">{{item.Title}}</h5>
</a>
</li>
{% endfor %}
for
還支持判斷是否為空數(shù)組或者nil
等,使用empty
來輸出不存在的情況。如:
{% for item in archives %}
<li class="item">
<a href="/archive/{{item.Id}}" class="link">
<h5 class="title">{{item.Title}}</h5>
</a>
</li>
{% empty %}
<div>沒有內(nèi)容</div>
{% endfor %}
它等價于使用if判斷
,但是這樣寫可以更簡潔:
{% if archives %}
{% for item in archives %}
<li class="item">
<a href="/archive/{{item.Id}}" class="link">
<h5 class="title">{{item.Title}}</h5>
</a>
</li>
{% endfor %}
{% else %}
<div>沒有內(nèi)容</div>
{% endif %}
cycle
標簽。在for循環(huán)
中,我們還可以使用cycle
標簽,來循環(huán)逐個輸出定義中的變量。
每次遇到此cycle
標簽時,都會產(chǎn)生其參數(shù)之一。 第一個參數(shù)在第一次遇到時產(chǎn)生,第二個參數(shù)在第二次遇到時產(chǎn)生,依此類推。 一旦所有參數(shù)用盡,標記將循環(huán)到第一個參數(shù)并再次產(chǎn)生它。
此標記在循環(huán)中特別有用。如:
{% for item in archives %}
<li class="item">
<a href="/archive/{{item.Id}}" class="link">
<h5 class="title">Title,Id 逐個出現(xiàn):{% cycle item.Title item.Id %}</h5>
</a>
</li>
{% endfor %}
或者使用as
來定義別名,再通過別名輸出:
{% for item in archives %}
<li class="item">
<a href="/archive/{{item.Id}}" class="link">
{% cycle item.Title item.Id as cycleitem %}
<h5 class="title">Title,Id 逐個出現(xiàn):{{ cycleitem }}</h5>
</a>
</li>
{% endfor %}