javascript - 玩!框架 : Best practice to use URLs in separate JavaScript files?

标签 javascript frameworks external playframework

我目前正在重组 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/

相关文章:

Django APIClient 登录不起作用

javascript - Google Javascript API 401 Fusion Table 凭证无效

javascript - 如何在 ember.js 中的同一路由中设置多个 Controller ?

ios - Swift 框架不适用于命名为 'Debug' 或 'Release' : No such module 以外的构建配置

java - 有没有办法从不在同一文件中的其他 Java 程序运行 Java 程序?

php - 加载外部 xml 文件?

css - 如何通过布局更新 xml 中的外部 css 文件将自定义 css 添加到特定页面到 magento

javascript - Sonarqube Javascript 规则 "Function names should comply with a naming convention"不适用于变量中声明的函数

javascript - 计时嵌套在具有间隔的循环内

python - 如何避免大量嵌套的 if-elif-else 条件语句来评估许多情况下的快速响应?