繁体   English   中英

Play2 Scala模板中的动态通过值

[英]Dynamic pass value in a Play2 scala template

我尝试动态更改其变量的值。 一旦点击( 更改票证ID )按钮,然后执行onClickSendEmail ,变量值应为tickedId的更改。 它无法使用newTickedId更新。 我尝试在使用@defining创建变量的同时尝试通过函数单独调用。 所以,基本上我被卡住了。 如何解决。

@(sender: String)
<!--@{var tickedId = "tickedId"}-->


@defining(sender.contains("@")) {isEmail =>
@main((if(isEmail) "Email" else "Chat") + " Messages - " + sender) {

    ...
    ...
    ...
<div>
 <a onclick="onClickSendEmail();return false;">
            Change Ticket ID
     </a>
</div>

@defining("getTicketId()") { tickedId =>

        @views.html.common.form.panel("Reply",controllers.routes.ChatMessageController.sendEmail(tickedId,sender),"Send"){
                <textarea id="emailArea" cols="100" rows="4" name="emailArea"></textarea>
        }


<script type="text/javascript">
            function onClickSendEmail() {
                tickedId= "NewUpdatedTicketId";
            }
     function getTicketId() {
             return "NewUpdatedTicketId";
            }
    </script>
 }
}
}

您不应将Twirl模板与Javascript混合使用。 这是一个不好的方法。 Twirl的作用是呈现HTML块。 您可以在此处定义条件和变量,以便动态更改HTML输出。 使用Javascript时,您无需重新加载页面即可修改呈现的HTML输出。
在某些情况下,您需要在Javascript中使用Twirl变量,然后可以执行以下操作:

@(chartData: Html)

<script>
    let jsData = @twirlData; // where twirlData is an existing variable
    console.log(jsData)
</script>


这是您可以阅读更多内容的链接

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM