打破Nunjucks循环
我已经在各个方面绞尽脑汁,但仍然没有解决办法。 也许有人有一些build议?
我在ExpressJS应用程序中使用Nunjucks作为模板引擎的下面的块。
{%- for course in courses -%} {%- for rcourse in report.courses -%} {%- if rcourse.id == course.id -%} <li {{ 'class="column-pre"' if loop.last else ''}}><span>Cool!</span></li> {%- else -%} <li></li> {%- endif -%} {%- endfor -%} {%- endfor -%}
我的问题:当条件certificate了真值y时,我需要break
内部report.courses
循环。 基本上,当我打印非空的<li>
行时,我需要跳转到循环的下一个迭代。
我知道Nunjucks没有像Jinja2那样的循环,Nunjucks的variables是有作用域的(所以我不能设置一个在if/else
语句中被修改的类似sentinel的variables),也不能追加到数组这样我可以使用array.length
来确定是否打印<li></li>
行。
也许有人有一个聪明的解决scheme?
我认为这个定点variables不会受到范围的影响:
{% for course in courses %} {% set searchrcourse = true %} {% for rcourse in report.courses %} {% if searchrcourse %} {% if rcourse.id == course.id %} <li {{ 'class="column-pre"' if loop.last else ''}}><span>Cool!</span></li> {% set searchrcourse = false %} {% else %} <li></li> {% endif %} {% endif %} {% endfor %} {% endfor %}