将没有参数的呼叫传递给Twirl模板

时间:2015-04-21 14:43:19

标签: templates playframework-2.0 twirl

在Play Framework(v 2.3.7)(scala 2.11.5)中,我希望将调用传递给旋转模板,但在模板加载之前,我无法计算参数。

用例是对表的分页(具有约束和用户定义的搜索选项)。我想将一个调用传递给模板并让它进行数学运算。 (就像我不喜欢"编程"在模板中 - 我选择将HTML生成保留在直接scala代码之外 - 不确定这是否是一个很好的决定或不...)

电话会议与此类似:

@routes.AController.list(constraint.id, pageNumber, pageLength)

如果相关,args为Long,Int,Int。

我相信我需要的东西被称为部分功能? (我可能会离开这里)

我如何传递这个说法:

pagination.scala.html 

我将如何随后在旋转模板中调用它?

PS:我没有问题将完全形成的增量传递给模板 - 我只是想从传递的参数(令人困惑的人......)中删除参数,并在稍后的时刻生成这些参数。如果做不到这一点,我必须事先通过至少四个论点才会变得非常快。

当然我希望将这个通用设置为可重用,但我想我能理解一下如何通过初始扩充的机制。

1 个答案:

答案 0 :(得分:0)

我认为生成分页URI的最新时刻是您的观点,甚至可能是更好的控制器动作。请记住,Play中的反向路由是类型保存,因此您需要使用某种反射来从pagination.scala.html部分的级别生成泛型链接。

相反,您可以准备让我们在控制器中说List String并将其传递给您的分页部分,以便它可以在不知道有关给定操作的呼叫的情况下呈现典型的分页。< / p>

注意:我想创建自己的PaginateUtil类,其中包含numberOfPagescurrentPagecurrentItems等字段,然后将其全部传递到视图,尽可能小的操作。