速度模板-“ #foreach”循环中没有“ #break”

时间:2018-08-07 12:56:32

标签: jquery html css apache velocity

我正在简要阅读有关Velocity模板语法的内容。具体来说,我正在尝试创建由模板引擎有条件呈现的内容。更具体地说,我想检查一个Confluence实例中的用户权限组,返回一个组名数组,然后根据用户需要以当前权限访问的内容有条件地呈现内容(例如菜单项)水平。

我当时在读没有“ #break”指令,这对我来说似乎很可笑,因此我着手在模板代码中测试“ #break”的使用。我最终得到的是这样:

#foreach ($group in $groupList)
#if (
$group == "administrators" ||
    $group == "group-1" ||
    $group == "group-2" ||
    $group == "group-3" ||
    $group == "group-4" ||
    $group == "group-5" ||
    $group == "group-6" 
)

<a href='<redacted link>'><li data-balloon-length="fit" data-balloon="View 
your agreements with us, e.g. your customer agreement, or our SLA's" data- 
balloon-pos="down">
<i class="fas fa-shower"></i>
<p>
  Hygiene
</p>
</li></a>
#break
#else
<a href='<redacted link>'><li class="no-permissions" data-balloon-length="fit" 
data-balloon="You have insufficient privileges to view this page" data- 
balloon-pos="down">
<i class="fas fa-shower"></i>
<p>
  Hygiene
</p>
</li></a>
#break
#end
#end

我对Velocity模板非常陌生,最近几个月才开始练习。我看到了一些有条件的优势,能够有条件地呈现内容,而不是例如使用JS或jQuery进行后处理。

我的问题是这个,我这样做正确吗?因为从我读到的内容来看,#break不存在(可能是我找到的旧文档,不确定)。

还有一个直接的问题,Apache Velocity模板中是否存在#break指令?

我想指出的是,此代码仅需进行最少的测试即可工作,正确识别任何组都不是特定顺序,并且无论组的顺序如何,它都只会呈现一个列表项或另一个列表项。

很抱歉提出一个问题!在此先感谢您的输入。

1 个答案:

答案 0 :(得分:1)

#break指令已在Velocity 1.6中引入。

检查documentations for the different versions很容易。