我试图在playframework
++上编写一个应用scala
程序Angular JS
。目的是创建一个在浏览器中关闭或打开 JavaScript 时都能正常工作的 Web 应用程序。这是编写公共站点时的通常要求(这对人们和将其索引的谷歌应该有好处)
所以我最终得到了大约 50%的代码JavaScript
,其中有两 (2) 个名为“控制器”的文件夹- 一个用于Scala
代码,一个用于JS
代码(因为 AngularJS 也使用控制器概念)。
此外,由于JS
代码应该使用Ajax
调用,我不得不创建一个返回的 scala-controller json
,但不html
返回客户端的请求。而且..这都是我不喜欢的。这似乎太费劲了。
在playframework
模板方面,我应该考虑如何结合Scala
,JavaScript
将参数从一种语言传递到另一种语言。使用一些技巧,例如显示何时处理 JS,显示何时应该关闭。
这一切都让我的模板变得难以理解,有一天,当我拥有庞大的代码库时,我可能会想出一个解决方案来复制我的模板(js 模板 + scala 模板)——在JS
关闭/打开时使用正确的模板。那么 JS 代码的数量可能会上升到60%。.
然后似乎我要复制所有内容,比如有两个不同的应用程序——用于Google和用于人。常见的(仅)是我的数据本身在我的数据库中,我不必复制数据。但是..我们可能对数据的格式有不同的问题(并且很可能是基于 json 的 [因为我不会浪费处理器时间来进行表对象转换],但不是基于表的 - NoSQL .. 然后再次,我们像 DB 一样来到 JS - 像MongoDB一样),并且原生地JS
与 Json 一起工作得很好。
然后问题,为什么不将 100%JS
用于简单的事情,例如:request-response,形成一个 page,layouts。服务器端JS
控制器可以形成我的模板——然后我不需要从一种语言切换到另一种语言,并且在这个意义上更加高效。
问:
您有什么建议吗?关于这个的最佳实践?我不是那种想最终使用NodeJS
一种JavaScript
语言来处理所有事情的人——服务器和客户端。但是让我们谈谈生产力和业务需求。
有一个 AnjularJS 控制器的例子(不是我的),我要写多少 JS: https ://github.com/tastejs/todomvc/tree/gh-pages/architecture-examples/angularjs/js
想象一下,我必须同时保留 PlayFramework 控制器——用于 HTML 和 AJAX 调用,将 scala/playframework 模板中的内容与 JavaScript 混合。