Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 从单独的JS文件访问Play Framework模板属性 我对游戏框架完全陌生,不认为自己在前端开发方面太有天赋了,所以我遇到了很多麻烦……_Javascript_Image_Coffeescript_Playframework 2.0 - Fatal编程技术网

Javascript 从单独的JS文件访问Play Framework模板属性 我对游戏框架完全陌生,不认为自己在前端开发方面太有天赋了,所以我遇到了很多麻烦……

Javascript 从单独的JS文件访问Play Framework模板属性 我对游戏框架完全陌生,不认为自己在前端开发方面太有天赋了,所以我遇到了很多麻烦……,javascript,image,coffeescript,playframework-2.0,Javascript,Image,Coffeescript,Playframework 2.0,我希望能够有一个按钮,改变图像的来源来回。图像相当大,因此我考虑在Javascript中预加载图像,但为了做到这一点,我必须访问此资产控制器,以便从publicimages目录中获取不同的图像。问题是,我试图保持一切整洁,并希望将Javascript(在我的例子中,我使用的是Coffeescript)保存在单独的文件中。这里的问题是,我无法从Coffeescript(或者从Java传递到模板的任何值)访问这个资产控制器。因此,当我尝试更改映像的源时,它只会给我一个404。有一种方法可以创建一个全

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

有一种方法可以创建一个全局javascript对象,该对象可以访问控制器的反向路由,包括配置的资产。首先阅读本页:

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

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

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

很好,谢谢你!我在添加链接中提到的语句时遇到了一些问题:
(implicit-req:RequestHeader)
。但是,仅仅删除它之后,它就编译并工作得非常好!:)很高兴听到!Play非常酷,因为您的所有路由和链接都可以是编译代码的引用,这使得以后的重构更加容易。此外,还有许多其他伟大的功能。如果你有问题,StackOverflow问题通常会得到回答,还可以查看Play google group-。
console.log(jsRoutes);
console.log(jsRoutes.controllers.Assets.at("images/favicon.png").url);