2012-02-13 6 views
2

私はテンプレートと2つのスニペットを持っています。選択した動的スニペットのテンプレートでIdを取得できますか?LiftWeb Loc.Templateの引数

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 

答えて

2

代わり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