Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/scala/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Templates 在scala模板中解码html_Templates_Scala_Playframework_Html Escape Characters - Fatal编程技术网

Templates 在scala模板中解码html

Templates 在scala模板中解码html,templates,scala,playframework,html-escape-characters,Templates,Scala,Playframework,Html Escape Characters,我试图创建一个基于路由的行为不同的标记,但是当我试图在@{…}块中呈现html时,我似乎无法正确插入变量 @(route: String, on_image: String, off_image: String, alt_text: String) @{ val Pattern = ("(" + route + ".*)").r val path = request().path() path match { case Pattern(foo) =&

我试图创建一个基于路由的行为不同的标记,但是当我试图在
@{…}
块中呈现html时,我似乎无法正确插入变量

@(route: String, on_image: String, off_image: String, alt_text: String)

@{
    val Pattern = ("(" + route + ".*)").r
    val path = request().path()


    path match {
        case Pattern(foo) => {
            if(path != route && route == "/") {
                <script type="text/javascript">
                    alert("{route}");
                </script>
            } else {
                <script type="text/javascript">
                    alert("{route}");
                </script>           
            }
        }
        case _ => {
            <script type="text/javascript">
                alert("{route}");
            </script>       
        }
    }
}
@(路由:字符串、打开图像:字符串、关闭图像:字符串、替换文本:字符串)
@{
val模式=(“(“+route+”*)”).r
val path=request().path()
路径匹配{
案例模式(foo)=>{
如果(路径!=路线和路线=“/”){
警报(“{route}”);
}否则{
警报(“{route}”);
}
}
案例=>{
警报(“{route}”);
}
}
}
当我加载页面时,我在Firebug控制台中得到一个语法错误,其中显示脚本标记的内容计算如下:

警报(“/accounts”)

现在,我已经尝试了像
@Html{…}
@Html(…)
@Html({…})
这样围绕整个块的方法。我还尝试了
alert(@Html({bar}”)
和其他类似的东西,但每样东西都会产生各种错误

正确的方法是什么

编辑


更新显示为简单起见,尝试只使用一个变量,并显示该变量的来源。

通过一点间接解决

@(route: String, on_image: String, off_image: String, alt_text: String)

@on = {
    <a href="@route"><img src="@routes.Assets.at(on_image)" alt="@alt_text" /></a>
}

@off = {
    <a href="@route"><img src="@routes.Assets.at(off_image)" alt="@alt_text" /></a>
}

@{
    val Pattern = ("(" + route + ".*)").r
    val path = request().path()


    path match {
        case Pattern(foo) => {
            if(path != route && route == "/") {
                {off}
            } else {
                {on}    
            }
        }
        case _ => {
            {off}       
        }
    }
}
@(路由:字符串、打开图像:字符串、关闭图像:字符串、替换文本:字符串)
@on={
}
@关={
}
@{
val模式=(“(“+route+”*)”).r
val path=request().path()
路径匹配{
案例模式(foo)=>{
如果(路径!=路线和路线=“/”){
{off}
}否则{
{on}
}
}
案例=>{
{off}
}
}
}

酒吧从哪里来?假设它也在代码中的某个地方,您是否尝试过在引号中使用@foo和@bar而不是{foo}?这实际上是一种倒退。然后我得到了
“@foo”
,无论如何,问题在于引号,而不是引号中的内容。您可以从我在问题中发布的输出中看到,{foo}(或者实际上,{route})返回值。我需要将该值转换为javascript字符串。