javascript - 从单独的 JS 文件访问 Play 框架模板属性

标签 javascript image coffeescript playframework-2.0

我对 Play 框架完全陌生,并且不认为自己在前端开发方面太有天赋,所以我在这方面遇到了很大的麻烦......

我希望能够有一个按钮来来回更改图像的来源。图像相当大,因此我考虑在 Javascript 中预加载图像,但为了做到这一点,我必须访问此 Assets Controller 以便从公共(public) 获取不同的图像>images 目录。问题是我试图保持一切整洁,并希望尝试将 Javascript(在我的例子中我使用的是 Coffeescript)保存在单独的文件中。这里的问题是我无法从 Coffeescript 访问此 Assets Controller (或从 Java 传递到模板的任何值)。因此,当我尝试更改图像的来源时,它只会给我一个 404。

最佳答案

Play 中有一种方法可以创建一个全局 JavaScript 对象,该对象可以访问 Controller 的反向路由,包括 Assets (如果您配置了该对象)。首先阅读此页面:

http://www.playframework.com/documentation/2.3.x/ScalaJavascriptRouting

阅读后,设置您的 JavaScript 路由以包含此资源(请参阅文档中的嵌入式路由器或路由器资源):

routes.javascript.Assets.at

然后您将能够通过 JavaScript 访问资源,如下所示:

console.log(jsRoutes);
console.log(jsRoutes.controllers.Assets.at("images/favicon.png").url);

关于javascript - 从单独的 JS 文件访问 Play 框架模板属性,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24844046/

相关文章:

javascript - 检测表单内的按键?

php - 将图像路径发送到数据库 codeigniter

javascript - 使用 JS/Coffeescript 递归连接数组

JavaScript 继承和 super 构造函数

javascript - 打印使用 itextsharp 创建的 PDF

javascript - Parse.Object.fetchAll 抛出意外错误

javascript - API 过滤和映射问题

android - 图像淡入不保持最终的 alpha

java - 背景图像隐藏所有 GUI 设计组件

javascript - 在 eval 中编译 coffeescript