比较javascript元素和scala变量的Play framework Twirl模板
如下面的代码示例所示,我想比较scala helper元素中的javascript元素。但是,即使存在元素“abcde”,它也总是返回false。除了使用标记之外,如何在scala helper元素中获取javascript值比较javascript元素和scala变量的Play framework Twirl模板,javascript,scala,playframework,Javascript,Scala,Playframework,如下面的代码示例所示,我想比较scala helper元素中的javascript元素。但是,即使存在元素“abcde”,它也总是返回false。除了使用标记之外,如何在scala helper元素中获取javascript值 @(appSeq:Seq(String)) <script> var app = 'abcde' @if(appSeq.contains(<script>app</script>)) { alert('true'); } else
@(appSeq:Seq(String))
<script>
var app = 'abcde'
@if(appSeq.contains(<script>app</script>)) {
alert('true');
} else {
alert('false');
}
</script>
@(appSeq:Seq(字符串))
var app='abcde'
@if(附件包含(附件)){
警报(“真”);
}否则{
警报(“假”);
}
您的问题不太清楚,但在scala中使用javascript变量是不可能的。视图被编译,然后将一些变量作为结果传递给该视图play/twirl将其呈现为http响应。在这之后,你在前端区域,根本没有scala
因此,最好将您的逻辑移动到前端。如果您只想包含一次检查,那么您可以这样完成它
@(appSeq:Seq[String], app: String)
<script>
var app = "@app"
@if(appSeq.contains(s"<script>$app</script>")) {
alert('true');
} else {
alert('false');
}
</script>
@(appSeq:Seq[String],app:String)
var-app=“@app”
@如果(appSeq.包含(s“$app”)){
警报(“真”);
}否则{
警报(“假”);
}
但若你们想做这个,在前端再次检查。最好将appSeq
作为javascript数组传递到前端,并在javascript对象上执行javascript包含
这里有一个用js解释的链接。由于这个原因,这是不可能的:
在JS虚拟机中进行评估var-app='abcde'
- XML文本
在Java虚拟机中进行计算app)
'abcde'
,或者最好将其分配给Scala值,如:
@(appSeq:Seq(String))
@app="abcde"
<script>
var app = "@app"
@if(appSeq.contains(<script>$app</script>)) {
alert('true');
} else {
alert('false');
}
</script>
@(appSeq:Seq(字符串))
@app=“abcde”
var-app=“@app”
@如果(应用程序包含($app)){
警报(“真”);
}否则{
警报(“假”);
}