2012-07-24 71 views
3

有沒有辦法可以動態修改片段的參數?如何動態設置電梯片段的參數?

E.g.如果我把這個網址

host:port/a_page?name=myname 

我想我的頁面看起來就像這樣:

<div class="lift:surround?with=default;at=content"> 
    <div class="lift:comet?type=MySnippet;name=myname" > 
     ... 
    </div> 
</div> 

是,即使可能嗎?我嘗試使用一些JavaScript爲了從URL中提取參數並將其放入divclass屬性中,但以我的理解,這將無法工作,因爲腳本將始終在提升框架完成後執行,這是不可取的。

在此先感謝!任何幫助真的很感激。


我用來提供使其工作都提示,像ajantis提到直接從片段閱讀的參數是在彗星通話的最簡單的方法,但不工作。羅加克解決方案的作品。

因此,解決辦法是:

<div class="lift:Ex.wrap"> 
    <div id="myid"></div> 
</div> 

def wrap = { 
val name = "lift:comet?type=MySnippet;name=" + S.param("name").openOr("...")    
"#myid" #> <div id="myid" class={name} ></div> 
} 

回答

2

您可以嘗試包裝,在其他片斷彗星片段,這將轉換XML並添加name=mynameclass。像:

​​
+1

謝謝羅格,我喜歡電梯社區。真的很小,但充滿光明和樂於助人的人。 – rsan 2012-07-24 16:44:54

3

爲什麼不直接提取片段處理HTTP內部參數?即

def render = { 
    val name = S.param("name").openOr("...") 
.... 
} 
+0

這是一個彗星片段(在OP的例子中) - 至少,它似乎沒有適當的訪問S.param。 – Rogach 2012-07-24 12:36:26

+0

是的,夠公平的。然後,我會建議這個評論:http://stackoverflow.com/questions/7915259/scala-lift-s-param-access-within-comet-actor/7915563#7915563 – 2012-07-24 12:57:48

+1

thanx @ajantis,Rogach解決方案比在http://stackoverflow.com/questions/7915259/scala-lift-s-param-access-within-comet-actor/7915563#7915563 propoused,但我不能沒有你的幫助得到答案。 – rsan 2012-07-24 16:42:31