2011-07-13 36 views
6

沒有人有一個優雅的解決方案(即不內聯)來傳遞服務器值的JavaScript在playframework?就像$ {X}或& {「X」}裏的htmlPlayframework:優雅的方式將值傳遞給JavaScript

目前我能想到的

<script type="text/javascript"> 
    var x= ${x}; 
    </script> 
    <script src="/public/javascripts/jsThatUsesX.js" type="text/javascript" ></script> 

我想有從場上更好的解決方案

回答

2

這不是漂亮,但是這是我最後總是這樣做的方式。

如果您傳遞給JavaScript的價值觀描述了DOM的東西,你可以考慮使用HTML 5的數據屬性放置在HTML中的信息。然後你可以用getAttribute找回它。例如如果你的網頁是一個博客帖子,你需要存儲的ID後,您可以使用

<div class="post" data-post-id="77"> 
    ... 
</div> 

這樣的數據從邏輯分離出來,你不需要任何內嵌的JavaScript。你也可以使用隱藏的表單域。

2

有什麼錯?我發現自己做這樣的事情

<script> 
    var trades = [${_trades.collect {models.Trade t -> t.price}.join(", ")}]; 
    // ... 
</script> 

我喜歡它的常規方式;)

+0

安德烈,沒有錯:-)。我喜歡Groovy。我希望能夠將對象直接傳遞給JavaScript(並避免內聯) – roshan