0

我有一个这样的代码块:

@reusableBlock(isAdmin: Boolean, value: String) = @{
    if(isAdmin){
        <a href="/admin/{value}">{value}</a>
    } else {
        <a href="/{value}">{value}</a>
    }
}

如果我传递一些参数:

<h1>@reusableBlock(true, "config")</h1>

我明白了

<a href=localhost:9000/admin/%7Bvalue%7D >config</a> 
instead of <a href=localhost:9000/admin/config >config</a>

您能否告诉我如何在可重用块中将变量输出到 HTML 标记。

非常感谢。

======== 编辑 =======

    @renderRoleButton(loggedin: Account, biz: Biz, isAdminPage: Boolean) = @{
    if(loggedin != null) {
        var isManaging = false;
        var roleText = "";
        var bizUsername = biz.username;
        for(role <- loggedin.roles) {
            if(role.restaurant.id == biz.id) {
                isManaging = true;
                roleText = role.role;
            }
        }

        if(isManaging) {
                if(isAdminPage) {       
                    <a href="/{bizUsername}"  class='btn btn-primary'>Preview as normal user {bizUsername}</a>
                } else {
                    <a href='/biz/bizUsername' class="btn btn-primary">Manage as {roleText}</a>
                }

            } else if(!loggedin.likes.contains(biz)) {
                <button type="button" class="btn btn-primary" value="Like">Like</button>
            } else {
                <button type="button" class="btn btn-primary" value="Like">Unlike</button>
            }           
    } else {
        <button type="button" class="btn btn-primary" value="Like">Log in to see good deals</button>
    }
}

<h1>@biz.name @renderRoleButton(loggedin, biz, isAdminPage)</h1>
4

2 回答 2

1

这应该有效。注意@字符在前两行和 for 中位置的变化@value(如 serejja 所述)。

@reusableBlock(isAdmin: Boolean, value: String) = {
  @if(isAdmin){
    <a href="/admin/@value">@value</a>
  } else {
    <a href="/@value">@value</a>
  }
}

-编辑-

由于您需要将其保留为一个@{}块,因此我认为您需要连接字符串来构建您需要的 HTML。您只需要更改isAdminPage支票内的这两行。我认为其他一切都可以保持不变。

if(isAdminPage){
  Html("<a href=\"/" + bizUsername + "\" class=\"btn btn-primary\">Preview as normal user " + bizUsername + "</a>")
}
于 2013-08-19T14:48:11.717 回答
0

试试这个:

@reusableBlock(isAdmin: Boolean, value: String) = {
    @if(isAdmin){
        <a href="/admin/@value">@value</a>
    } else {
        <a href="/@value">@value</a>
    }
}
于 2013-08-19T14:38:35.560 回答