打破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 %}