第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何避免在play2中到處傳遞參數(shù)?

如何避免在play2中到處傳遞參數(shù)?

如何避免在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>我不知道它是好還是推薦,有沒有更好的解決方案呢?
查看完整描述

3 回答

?
喵喔喔

TA貢獻1735條經(jīng)驗 獲得超5個贊

我這樣做的方法是為我的導(dǎo)航/菜單創(chuàng)建一個新的控制器,并從視圖中調(diào)用它

所以你可以定義你的NavController

object NavController extends Controller {
  private val navList = "Home" :: "About" :: "Contact" :: Nil
  def nav = views.html.nav(navList)}

nav.scala.html

@(navLinks: Seq[String])@for(nav <- navLinks) {
  <a href="#">@nav</a>}

然后在我的主視圖中我可以稱之為NavController

@(title: String)(content: Html)<!DOCTYPE html><html>
  <head>
    <title>@title</title>
  </head>
  <body>
     @NavController.nav
     @content
  </body></html>


查看完整回答
反對 回復(fù) 2019-08-23
  • 3 回答
  • 0 關(guān)注
  • 488 瀏覽

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動學(xué)習(xí)伙伴

公眾號

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號