我试图使用prexisting模块填充html模板中的列表
@{Nav.list.map( l =>
l.id match {
case "Art" => { <li id="art"><span>Articles</span></li> }
case "Due" => { <li id="toggle"><a href="javascript:void(0)" title="Links"><span>Links</span></a>
<div id="drawer">
<div id="drawerContent" style="display:none;">
<ul>
<li><a href="#" title="link hover"><span>link title 2</span></a></li>
<li><a href="#" title="link hover"><span>link title 3</span></a></li>
<li><a href="#" title="link hover"><span>link title 4</span></a></li>
</ul>
</div>
</div>
</li> }
case _ => { <li id="@l.id"><a href="@l.href" title="@l.title"><span>@l.title</span></a></li> }
} )}
@ isnt作为最终案例的转义字符,而只是被解析为@ l.id等我最初使用嵌套的if else语句用非常详细的括号做了这个,虽然有效,但在眼睛上并不是很好看,我认为格式化程序存在嵌套scala结构的问题,但我不确定。
我尝试使用for而不是map并尝试封闭和转义匹配构造,他们编译但问题仍然存在
答案 0 :(得分:1)
我认为这里的问题是你在做@ {}时处于scala世界,所以你可以在最后一种情况下做到以下几点:
case _ => <li id={l.id}><a href={l.href} title={l.title}><span>{l.title}</span></a></li>
或者我认为你可以这样做:
@Nav.list.map( l => ... )