播放框架Twirl模板,比较javascript元素和scala变量

编程入门 行业动态 更新时间:2024-10-28 00:28:57
本文介绍了播放框架Twirl模板,比较javascript元素和scala变量的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧! 问题描述

如下面的代码示例所示,我想比较scala helper元素内的javascript元素.但是,即使存在元素"abcde",它也始终返回false.除了使用标记外,如何在scala帮助器元素中获取javascript值?

As shown in the code sample below I want to compare a javascript element inside a scala helper element. However it always returns false even when the element "abcde" is present. How can I get the javascript value inside the scala helper element other than using tags?

@(appSeq:Seq(String)) <script> var app = 'abcde' @if(appSeq.contains(<script>app</script>)) { alert('true'); } else { alert('false'); } </script>

推荐答案

由于这个原因,这是不可能的:

It is not possible for this reason:

  • var app = 'abcde'在JS VM中评估
  • XML文字<script>app</script>)在Java VM中评估
  • var app = 'abcde' is evaluated in the JS VM
  • the XML literal <script>app</script>) is evaluated in the Java VM

因此,由于它们是两个不同的上下文,因此您无法共享从JS到Scala的变量.您可以做的是将变量从Scala传递到JS,因为首先评估Scala代码,所有值都将呈现在模板中.

So since they are two different contexts you can't share a variable from JS to Scala. What you can do is pass a variable from Scala to JS, since Scala code is evaluated first and all the values will be rendered in the template.

您需要在Scala XML中对'abcde'进行硬编码,或者更好地将其分配给Scala值,例如:

You need either to hard code 'abcde' in the Scala XML or better assign it to a Scala value like:

@(appSeq:Seq(String)) @app="abcde" <script> var app = "@app" @if(appSeq.contains(<script>$app</script>)) { alert('true'); } else { alert('false'); } </script>

更多推荐

播放框架Twirl模板,比较javascript元素和scala变量

本文发布于:2023-07-11 17:13:29,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1094801.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:变量   框架   元素   模板   javascript

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!