我目前正在重组 Play!有很多JS的项目 HTML 模板文件中的代码。此代码应移至外部 JS 文件以获得更好的可读性和更快的页面加载时间。然而, 当我在公共(public)文件夹中创建一个 JS 文件时,所有 @{Controller.method} 链接替换不再有效。我曾是 考虑从 HTML 调用一些初始化函数 仅提供所需 URL 的模板,例如
initialize({ "Application.doThis" : "@{Application.doThis}"})
然而,这对于任何 URL 都变得非常麻烦且容易出错 即已添加。另一件事是,I18N 也不再有效。所以 对于这样的场景,您有自己的最佳实践是什么 单独文件中的 JS 代码,但仍想使用 URL 生成和 你的 JS 中的 I18N?
最佳答案
在主模板中,生成一个“Javascript 路由器”,类似于:
<script>
var routes = {
doThis: #{jsAction @Application.doThis(user, ':param1', ':param2') /},
doThat: #{jsAction @doThat() /}
}
</script>
然后在任何“静态”javascript 文件中,使用此路由器:
$.get(routes.doThis({param1: x, param2: 'yop'}))
关于javascript - 玩!框架 : Best practice to use URLs in separate JavaScript files?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4209420/