2012-05-10 9 views
2

少し問題がありますが、ドキュメントに基づいて再利用可能なブロックを作成できるはずです。ここで私を驚かせてくれたScalaの経験がないかもしれません...Play 2.0.1 - Scalaテンプレートの文字列連結+再利用可能なコードブロック

私は.scala.htmlファイルに渡されるストリングのリストを持っています。文字列は ".js"のないjavascriptファイル参照です。

@jsFileWithExtension(file: String) = @{ 
    val newFile = file + ".js 
} 
@for(jsFile <- headJs) { 
    <script src="/assets/javascripts/@jsFileWithExtension("@jsFile")"></script> 
} 

現在、拡張子のないjsファイルがロードされています。このすでにScalaのコード与えられ、引用符として

@jsFileWithExtension(jsFile) 

、およびjsFileWithExtensionパラメータの@

答えて

2

これを試してみてください:

@jsFileWithExtension(file: String) = @{ file + ".js" } 


@for(jsFile <- headJs) { 
    <script src="/assets/javascripts/@jsFileWithExtension(jsFile)"></script> 
} 

あなたjsFileWithExtensionニーズに値を返すこと。現在はUnitを返します。ダニエルは、関数へのパラメータを引用符や魔法を必要としないと指摘したので@ charです。

0

が、この代わりに動作しませんか?

+0

いいえ、それは(少なくともない私のために!)しません、私はおそらく私が試した方法を指摘している必要があります:) –

2

なぜ単純に.jsを追加しないのですか?それ以外の.jsは、メソッド呼び出しのように見えるとして、ここで

@for(jsFile <- headJs) { 
    <script src="/assets/javascripts/@(jsFile).js"></script> 
} 
+0

キー()で囲んであります遊ぶ –

関連する問題