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

10-11 02:43