我们已经在前面的教程里面学习了一些Jsnpp模板语法,包括模板变量和判断语句等,现在我们可以制作一些简单的模板了,但是如果涉及到列表的输出,前面所学还是不够的,这篇我们就来继续学习Jsnpp的模板语法。
我们下面要学习的是Jsnpp模板里面怎么实现循环输出内容。循环输出是模板里面比较重要的一个语法,并且也是常用的,例如输出列表内容等,就需要使用循环语句来实现。
我们先来看一个示例代码:
{each $item in $items}
<div>{$item.name}</div>
{endeach}
上面的代码是模板语法的循环输出语法,我们先观察一下代码,为了能够简单地说明问题,我们这里的代码只写了三行,为的是您能更好地理解。
我们发现上面代码跟前面介绍过的判断语法看上去有相似之处,区别在于名称的不同,这里是“each”,对应的结束标签根据前面所学就是“endeach”。
“each”是一个循环输出标签,循环的对象是什么呢?
以上面的代码为例,“each”是对模板变量“$items”作循环输出,第一行代码的“in”前面的那个模板变量“$item”代表了“$items”中的每一个项。第二行的模板标签是一个复合标签“$item.name”,表示的是:每个项里面的“name”。这里为了简化代码,只输出了“name”。
现在,我们知道了“each”语句的语法是“each $item in 模板变量”这样的格式。
上面介绍的是“each”的最简用法,我们还可以添加一些额外的控制,看下面的代码:
{each $item in $items from 0 to 6 step 1}
<div>{$item.name}</div>
{endeach}
上面代码跟前面的each代码的区别是在第一行多了“from 0 to 6 step 1”,我们来解释一下,这些代码表示什么。
“from”表示从那条记录开始,这里的“0”表示是从1条开始。
“to”表示到哪条记录为止,但不包括那条记录。
“step”表示显示的时候间隔几条记录,这里为“1”,表示每条记录都显示。
以上三个属性是可以省略的,默认情况下,是从第一条记录开始显示,并显示所有记录。