2015-04-21 64 views
0

在Play Framework(v 2.3.7)(scala 2.11.5)中,我希望將調用傳遞給旋轉模板,但直到計算結束時才能計算參數在模板加載後。將不帶參數的調用傳遞給Twirl模板

用例是表格上的分頁(帶有約束和用戶定義的搜索選項)。我希望將一個調用傳遞給模板,讓它「做數學運算」(就像我不是模板中的「編程」粉絲一樣 - 我選擇使用直接scala代碼保留HTML代 - 目前還不能確定,如果這是一個偉大的決定或不...)

呼叫將與此類似:

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

的ARG遊戲龍,INT,INT在相關情況。

我相信我所需要的是一種局部函數? (我可能是大錯特錯這裏)

如何傳遞這樣說的:

pagination.scala.html 

我怎麼會隨後把它叫做捻模板裏面?

PS:我沒有任何問題將完全形成的增強傳遞給模板 - 我只是想將參數從傳遞的參數中擦掉(讓人困惑的人......),並在稍後的時間生成這些參數。如果不這樣做,我將不得不通過最少四個參數,而這個參數會變得非常難看。

當然,我希望使這個通用性足以重複使用,但我認爲一旦我理解了如何通過初始增強的機制,我就可以處理這個問題。

回答

0

我認爲生成分頁URI的最新時刻是您的視圖,或者甚至更好的控制器的行爲。請記住,Play中的反向路由是類型保存,所以您需要使用某種反射來生成部分pagination.scala.html部分級別的通用鏈接。

相反,你可以準備讓我們說StringList一個在你的控制,並通過給你的分頁部分,因此它可以呈現典型的分頁沒有關於徵集行動給出任何知識。

注:我喜歡創造自己的PaginateUtil類,其中包含這樣的領域,如numberOfPagescurrentPagecurrentItems等,然後通過它整體視圖,使操縱它儘可能小。

+0

我已經有分頁工作(從旋轉模板空間內),以及約束和用戶可定義的搜索 - 我現在要做的就是將其放入更簡潔和可重用的格式。 – Techmag