我在Play 2.1.x应用中使用jsRoutes。我的路线文件的一部分看起来如下:
GET /assets/template/js/routes/admin.js controllers.Admin.jsRoutes
GET /assets/template/js/routes/salonManagement.js controllers.SalonManagement.jsRoutes
而且我想在我的Scala模板中使用这两个引用(即,根据设计,一个控制器包含必要的api函数,另一种包含必需的表单提交URL)。
因此,在我的scala模板中,我有以下部分:
<script type="text/javascript" src="@routes.Admin.jsRoutes()"></script>
<script type="text/javascript" src="@routes.SalonManagement.jsRoutes()"></script>
不幸的是,每个生成的javascript文件均以
var jsRoutes = {};
开头。因此,@routes.SalonManagement.jsRoutes()
会覆盖@routes.Admin.jsRoutes()
的属性,并且我只能使用最后一个jsRoutes对象。现在,我只知道一种解决方法。在每个jsRoutes声明之后,我可以插入一个脚本,该脚本将旧的jsRoutes对象复制到一个临时对象,然后使用其自身扩展新的jsRoutes。但这似乎不是正确的方法。
有没有更好的办法?
最佳答案
“ jsRoutes”名称没有什么特别的。您可以保留相同的方法名称,以确保各个控制器之间的一致性,但只需将不同的名称传递给Routes.javascriptRouter
方法。
关于javascript - Play 2.x:如何在一个Scala模板中使用两个jsRoutes文件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/19452706/