1

我正在尝试使用现有模块在 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> }
        } )}
    

@ 不是作为最后一个案例的转义字符,而是被解析为 @l.id 等格式化程序在嵌套 scala 结构方面存在问题,但我不确定。

我尝试使用 for 而不是 map 并尝试封闭和转义匹配结构,它们编译但问题仍然存在

4

1 回答 1

1

我认为这里的问题是您在执行 @{} 时处于 scala 世界,因此您可以在最后一种情况下执行以下操作:

case _ => <li id={l.id}><a href={l.href} title={l.title}><span>{l.title}</span></a></li>

或者我认为你可以这样做: @Nav.list.map( l => ... )

于 2012-08-14T16:38:29.180 回答