有没有办法通过Javascript调用@controllers.app.test()
?
使用中一直运行良好
location.href = '@controllers.app.test()'
不知何故,这个location.href
变成了一个实际的URL:
127.0.0.1:9001/admin/@controllers.app.test()
谁能帮我解决这个问题吗?
最佳答案
@controllers.app.test()
是在服务器端计算的。您的 HTML 位于 View 中并由服务器处理,这就是它变为 /admin/@controllers.app.test()
的原因。 。你的Javascript只是在一个公共(public)文件夹中,所以它不会被处理。
您可以执行以下操作之一:
- 将 JS 文件放入 View 中(与放置“工作正常”的 HTML 的位置相同)。
- 将 JS 对象添加到 HTML,如
<script> var myAction="@controllers.app.test()"</script>
然后使用myAction
在JS中。 使用 Java 脚本路由器:
3.1。 https://www.playframework.com/documentation/2.6.x/ScalaJavascriptRouting
3.2。 Convert a javascript variable to scala in play framework
3.3。 How to update src of a img from javascript in a play framework project?
关于javascript - Playframework:通过Javascript通过location.href调用 Controller 的action,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49336004/