【发布时间】:2018-07-16 17:24:39
【问题描述】:
我在 javascript 中有一些变量:
var something = 1;
var url = "@CSRF(routes.Some.thing(something))";
我在编译过程中遇到错误,因为 "something" 没有引用 javascript 变量,换句话说;编译器无法识别它。是否可以以某种方式转换/注入 javascript 变量?另外,这是否可以在 javascript 中实时工作,还是我需要准备一个 "@CSRF(routes.Some.thing(something))" 数组,其中包含每个可能的“某物”值?
这应该是一个简单的休息调用,见于路由文件:
/something/:something controllers.Some.thing(something : Long)
另一种方法是使用表格,但我想尽量不要。
【问题讨论】:
-
尽管 play & twirl 的整个过程看起来很神奇,但它仍然存在模板内容在服务器上填写的“限制”,而您的 javascript 变量
something存在于用户的浏览器,在页面在服务器上呈现并通过网络发送很久之后。由于play看不到未来(也看不到用户的浏览器),因此这似乎不可能。但是,您可以预先计算许多不同的路由,然后在 JS 中添加一些逻辑以在客户端选择正确的 URL... -
@AndreyTyukin 是的,这就是我的想法......这就是为什么我建议“准备一个包含每个可能的“某物”值的“@CSRF(routes.Some.thing(something))”数组” .这是好习惯吗?我有多个实体,每个实体都有几个选项。所以,路线很多。
标签: javascript scala playframework csrf