如何避免在play2中到處傳遞參數(shù)?在play1中,我通常會在操作中獲取所有數(shù)據(jù),直接在視圖中使用它們。由于我們不需要在視圖中顯式聲明參數(shù),因此這非常簡單。但是在play2中,我發(fā)現(xiàn)我們必須request在視圖的頭部聲明所有參數(shù)(包括),在動作中獲取所有數(shù)據(jù)并將它們傳遞到視圖中會非常無聊。例如,如果我需要顯示從首頁的數(shù)據(jù)庫加載的菜單,我必須在以下位置定義main.scala.html:@(title: String, menus: Seq[Menu])(content: Html) <html><head><title>@title</title></head><body>
<div>
@for(menu<-menus) {
<a href="#">@menu.name</a>
}
</div>
@content</body></html>然后我必須在每個子頁面中聲明它:@(menus: Seq[Menu])@main("SubPage", menus) {
...}然后我必須得到菜單并傳遞給每個動作查看:def index = Action {
val menus = Menu.findAll()
Ok(views.html.index(menus))}def index2 = Action {
val menus = Menu.findAll()
Ok(views.html.index2(menus))}def index3 = Action {
val menus = Menu.findAll()
Ok(views.html.index(menus3))}現(xiàn)在它只有一個參數(shù)main.scala.html,如果有很多,怎么辦?所以最后,我決定Menu.findAll()直接看到所有人:@(title: String)(content: Html) <html><head><title>@title</title></head><body>
<div>
@for(menu<-Menu.findAll()) {
<a href="#">@menu.name</a>
}
</div>
@content</body></html>我不知道它是好還是推薦,有沒有更好的解決方案呢?
如何避免在play2中到處傳遞參數(shù)?
撒科打諢
2019-08-23 14:53:25