2011-03-11 57 views
23

在文件main.html,由Play!創建默認的項目,有這樣一行:遊戲框架:如何使用「moreStyles」和「moreScripts」

#{get 'moreStyles' /} 

我明白,如果我需要添加更多的風格,在我看來,劇本,我不得不使用

#{set tag:'value' /} 

其中tag應該是moreStyles,但似乎撥錯將值設置爲完整的HTML標籤<link>。如果視圖需要添加更多樣式或腳本,會發生什麼?

謝謝!

#{set 'moreStyles'} 
     #{stylesheet 'main.css' /} 
#{/set} 

像腳本:

回答

36

您設置多個風格

#{set 'moreScripts'} 
    #{script 'base64.js'/} 
#{/set} 
+0

我幾乎忘了那個問題。我在用戶組中找到了類似的解決方案,但未提及'#{script}'和'#{stylesheet}'。 :) – 2011-03-22 17:44:09

+1

這個例子有效,但只適用於簡單的情況。如果你打算重用這個setter,並期望結果結合起來,看到另一個答案,主演「簡單地使用#set ...」 – 2011-12-09 18:24:12

19

只需使用#{}集標籤會覆蓋原有的值。

也就是說,如果您發出

#{set 'moreStyles'}xxx#{/set} 

然後

#{set 'moreStyles'}yyy#{/set} 

然後

#{get 'moreStyles' /} 

只會返回YYY

,以達到你想要什麼,你有到

#{set 'moreStyles'} 
    #{get 'moreStyles' /} 
    #{stylesheet 'main.css' /} 
#{/set} 

,然後樣式表的main.css將被添加到morestyles

以前的值在類似的情況下,我結束了創建我自己的#{} addStyle標籤

+0

好吧,我沒有這樣的問題,但謝謝你分享這個,如果我曾經進入這個問題,我會知道該怎麼做。 – 2011-03-23 21:33:06

+0

僅供參考,我剪切並將其粘貼到我的代碼中,但所有遊戲示例在駱駝情況下使用'moreStyles',並且設置變量區分大小寫,所以'morestyles'不起作用。一旦我發現這個例子完美運行。 – rancidfishbreath 2012-01-11 14:07:02

+0

感謝您的評論,如果您不依賴遊戲示例,上面的代碼可以正常工作,但爲了避免混淆,我會編輯它... – opensas 2012-01-12 04:34:07

3
#{set 'moreStyles'} 
<link rel="stylesheet" type="text/css" media="screen" href="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/themes/ui-lightness/jquery-ui.css" charset="${_response_encoding}"/> 
#{/set} 
#{set 'moreScripts'} 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/jquery-ui.min.js" type="text/javascript" charset="${_response_encoding}"></script> 
<script src="http://ajax.googleapis.com/ajax/libs/jqueryui/1.8.14/i18n/jquery.ui.datepicker-zh-CN.js" type="text/javascript" charset="${_response_encoding}"></script> 
<script language="javascript"> 
    $(document).ready(function() { 
     $('.datepicker').datepicker(); 
    }); 
</script> 
#{/set}