Playframework:通过Javascript通过location.href调用控制器的操作

时间:2018-03-17 12:27:29

标签: javascript scala url playframework

有没有办法通过Javascript调用@controllers.app.test()

使用

时工作正常
location.href = '@controllers.app.test()'

不知怎的,这个location.href成了一个实际的网址:

127.0.0.1:9001/admin/@controllers.app.test()

任何人都可以帮我解决这个问题吗?

1 个答案:

答案 0 :(得分:1)

@controllers.app.test()在服务器端计算。您的HTML在视图中并由服务器处理,这就是它成为/admin/@controllers.app.test()的原因。您的Javascript只是在公共文件夹中,因此它不会处理。

你可以做下一个:

  1. 将JS文件放入视图中(放置“工作正常”的HTML的位置)。
  2. 将JS对象添加到HTML <script> var myAction="@controllers.app.test()"</script>等HTML,然后在JS中使用myAction
  3. 使用Java Script路由器:

    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?