我对 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/