LiftWeb Loc.Template аргументы - PullRequest
       7

LiftWeb Loc.Template аргументы

2 голосов
/ 13 февраля 2012

У меня есть шаблон и два фрагмента.Могу ли я получить идентификатор в шаблоне для выбора динамического фрагмента.

def remote =
  Menu.param[Point]("Test1", "remote",
  id => inTransaction(Points.lookup(id)), _.id) / "point" / * / "remote" >>
  //inTransaction(Points.lookup(id)) match
  //  case point.Kind.remote =>
  Loc.Template(() => Templates("point" :: "remote" :: Nil).openOr(Nil)) >> Hidden
  //  case point.Kind.otherremote =>
  //Loc.Template(() => Templates("point" :: "otherremote" :: Nil).openOr(Nil)) >> Hidden

1 Ответ

2 голосов
/ 13 февраля 2012

Вместо этого следует использовать ValueTemplate, это обеспечивает текущее проанализированное значение параметра.

Код ниже не проверен, но вы должны понять:

def remote = Menu.param[Point]("Test1", "remote",
  id => inTransaction(Points.lookup(id)), _.id) / "point" / * / "remote" >>
  Loc.ValueTemplate(point => point match
    case Full(p) if p.Kind.remote => Templates("point" :: "remote" :: Nil).openOr(Nil))
    case Full(p) if p.Kind.otherremote => Templates("point" :: "otherremote" :: Nil).openOr(Nil))
    case _ => NodeSeq.Empty
  ) >> Hidden
...