私は、目次を表すマップを持っています。それはChapter
のキーとList[Section]
の値を含んでいます。今、私はこのように私のテンプレートでこのをループしようとしています:再生!フレームワーク2.0 - スケーラテンプレート内のマップをループしていますか?
<dl>
@table_of_contents.foreach((e) => {
<dt>
@e._1.title
</dt>
for(section <- e._2){
<dd>
@section.title
</dd>
}
})
</dl>
私は現在、しかし<dl>
には出力を取得していません。
私はマップが実際にやったことを確認するために、テンプレートの先頭にprintln(table_of_contents)
文を追加してデータを持っているし、それが印刷された:
{[email protected]=BeanList size[4] hasMoreRows[false] list[[email protected], [email protected], [email protected], [email protected]], [email protected]=BeanList size[0] hasMoreRows[false] list[]}
は、おそらく私が不可欠スタイルを使用する必要がありますか?
UPDATE:まだこれに取り組んで
...コンパイルするには、この変化が、ノー出力を得ました。
<dl>
@table_of_contents.foreach{case(a, b) => {
<dt>
@a.title
</dt>
@displaySections(b)
}}
</dl>
...
@displaySections(sections: List[Section]) = {
@for(a_section <- sections) {
<dd>@a_section.title</li>
}
}
Playの経験はあまりありませんが、 'foreach'の戻り値の型が' Unit'なのではありますか?代わりに 'map'を使ってみましたか? – Gareth
@Gareth私は正しいところで、 'foreach()'メソッドを呼び出す代わりに 'for()'構文を使うようにループを変更したと思います。 – wbarksdale