Play Framework:Html模板内容无法正常转义

时间:2012-08-14 15:41:36

标签: html templates scala playframework playframework-2.0

我试图使用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并尝试封闭和转义匹配构造,他们编译但问题仍然存在

1 个答案:

答案 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 => ... )