在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:我没有问题将完全形成的增量传递给模板 - 我只是想从传递的参数(令人困惑的人......)中删除参数,并在稍后的时刻生成这些参数。如果做不到这一点,我必须事先通过至少四个论点才会变得非常快。
当然我希望将这个通用设置为可重用,但我想我能理解一下如何通过初始扩充的机制。
答案 0 :(得分:0)
我认为生成分页URI的最新时刻是您的观点,甚至可能是更好的控制器动作。请记住,Play中的反向路由是类型保存,因此您需要使用某种反射来从pagination.scala.html
部分的级别生成泛型链接。
相反,您可以准备让我们在控制器中说List
String
并将其传递给您的分页部分,以便它可以在不知道有关给定操作的呼叫的情况下呈现典型的分页。< / p>
注意:我想创建自己的PaginateUtil
类,其中包含numberOfPages
,currentPage
,currentItems
等字段,然后将其全部传递到视图,尽可能小的操作。