Templates 将不带参数的调用传递给Twirl模板

Templates 将不带参数的调用传递给Twirl模板,templates,playframework-2.0,twirl,Templates,Playframework 2.0,Twirl,在Play Framework(V2.3.7)(scala 2.11.5)中,我希望将调用传递给twirl模板,但在加载模板之前,我无法计算参数 用例是在表上分页(使用约束和用户定义的搜索选项)。我想向模板传递一个调用,让它“做数学运算”(我不喜欢在模板中“编程”——我选择了不直接生成scala代码的HTML——还不确定这是否是一个伟大的决定……) 该呼叫将类似于此: @routes.AController.list(constraint.id, pageNumber, pageLength)

在Play Framework(V2.3.7)(scala 2.11.5)中,我希望将调用传递给twirl模板,但在加载模板之前,我无法计算参数

用例是在表上分页(使用约束和用户定义的搜索选项)。我想向模板传递一个调用,让它“做数学运算”(我不喜欢在模板中“编程”——我选择了不直接生成scala代码的HTML——还不确定这是否是一个伟大的决定……)

该呼叫将类似于此:

@routes.AController.list(constraint.id, pageNumber, pageLength)
参数为Long,Int,Int(如果相关)

我相信我需要的是一个部分函数?(我可能离这里的基地很远)

我如何通过这个来表示:

pagination.scala.html 
接下来我将如何在twirl模板中调用它

PS:我在将完全格式的扩充传递到模板时没有问题——我只想删除传递的参数(令人困惑的是…),并在稍后生成这些参数。如果我不能做到这一点,我就必须提前通过至少四个论点,这很快就会变得难看


当然,我想让它足够通用,以便可重用,但我认为,一旦我了解了如何通过初始扩展的机制,我就可以处理这个问题

我认为生成分页URI的最新时刻是您的视图,或者可能是更好的控制器操作。请记住,播放中的反向路由是类型保存,所以您需要使用某种反射来从
pagination.scala.html
partial级别生成通用链接

相反,您可以在控制器中准备一个
字符串的
列表
,并将其传递给分页部分,这样它就可以在不知道对给定操作的调用的情况下呈现典型分页


注意:我喜欢创建自己的
PaginateUtil
类,该类包含
numberOfPages
currentPage
currentItems
等字段,然后将其整体传递给视图,以使对其的操作尽可能小。

我已经有了分页功能(在twirl模板空间内),除了约束和用户可定义的搜索,我现在想做的就是将其转换成一种更简洁和可重用的格式。