如何在Pebble模板(http://www.mitchellbosecke.com/pebble/home)中的for循环中检测列表中的最后一项?
我正在使用Pebble生成JSON。我有一个我需要迭代的对象列表,除了最后一个之外,我需要在每个对象之后加一个逗号。
这是相关的模板代码,我厌倦了在IF语句中使用loop.index和loop.length。但是它不起作用(无论如何我都需要检查loop.length -1)。
模板:
"menu": {
"items": {
{% for menuItem in menuItems %}
"{{ menuItem.name }}": "{{ menuItem.value }}"{%- if loop.index < loop.length %},{% endif %}
{%- endfor %}
}
}
示例所需输出:
"menu": {
"items": {
"item1": "Item 1",
"item2": "Item 2
}
}
之前我使用过Jinja2 Python模板引擎,它的语法类似于Pebble。 Jinja2还有一个index.last属性,它是一个布尔值,可以在这样的IF语句中使用。我不知道Pebble中有类似的东西。
森
答案 0 :(得分:2)
在循环内部,Pebble提供了一些特殊变量来帮助您:
文档更新,此处缺少变量
答案 1 :(得分:1)
首先,我认为您应该查看Jackson或GSON之类的专用JSON库。它可能更适合您要做什么。
也就是说,我遇到了同样的问题,最新版本在循环中包含属性< Button
android:text="Login"
android:id="@+id/login_btn_login"
android:layout_height="35dp"
style="@style/button_style" />
loop.first
和loop.last
。
我在以下测试中找到了它。