我的應用程序(view1)的主菜單包含只有在用戶登錄(view2)時才必須顯示的選項。在view1中調用一個控制器方法。此方法檢查用戶並返回view2,並將用戶作爲參數。Play Framework-如何返回play.twirl.api.Html
視圖1:在HomeController的
@import com.feth.play.module.pa.views.html._
<div class="container-fluid">
<ul>
<li><a href="#">menu 1</a></li>
<li><a href="#">menu 2</a></li>
</ul>
</div>
<div id="logged">
@controllers.HomeController.showOptions()
</div>
方法:
public Html showOptions(){
final User localUser = getLocalUser(session());
return view2.render(localUser);
}
視圖2:
@(logged: User = null)
@if(logged!=null) {
<div id="userMenu">
<ul class='nav'>
<li><a href="#">user option 1</a></li>
<li><a href="#">user option 2</a></li>
</ul>
</div>
編譯器示出了這樣的錯誤:
value showOptions is not a member of controllers.ReverseHomeController
我沒有太多的遊戲經驗,所以我不確定這是調用控制器方法的正確方法。我也試圖與
@routes.HomeController.showOptions()
但後來我得到
Cannot use a method returning play.twirl.api.Html as a Handler for requests
所有幫助表示讚賞。謝謝 !
我猜你應該使用包括這裏,而不是再次調用控制器:https://www.playframework.com/documentation/2.6.x/ScalaTemplateUseCases#Includes – rethab