我目前正在重组Play!有很多JS的项目
HTML模板文件中的代码。此代码应移至外部
JS文件可提供更好的可读性和更快的页面加载时间。然而,
当我只是在公共(public)文件夹中创建一个JS文件时,
@ {Controller.method}链接替换不再起作用。我曾是
考虑从HTML调用一些初始化函数
仅提供所需网址的模板,例如

initialize({ "Application.doThis" : "@{Application.doThis}"})

但是,任何URL都变得非常麻烦且容易出错
被添加。另一件事是,I18N也不再起作用。所以
在这种情况下,您拥有自己的最佳方案是什么
JS代码位于单独的文件中,但仍想使用URL生成和
I18N在您的JS中?

最佳答案

在主模板中,生成一个“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/

10-11 09:31
查看更多