- android - RelativeLayout 背景可绘制重叠内容
- android - 如何链接 cpufeatures lib 以获取 native android 库?
- java - OnItemClickListener 不起作用,但 OnLongItemClickListener 在自定义 ListView 中起作用
- java - Android 文件转字符串
我尝试在 playframework
+ scala
+ Angular JS
上编写应用程序。目的是创建一个 web 应用程序,当 JavaScript 在浏览器中关闭或打开时,它可以正常工作。这是编写公共(public)网站时的通常要求(这对人们和将其编入索引的谷歌来说应该是好的)
所以我最终用 JavaScript
编写了 ~50% 代码,有两 (2) 个名为 “controller” 的文件夹 - 一个用于Scala
代码,一个用于 JS
代码(因为 AngularJS 也使用 Controller 概念)。
此外,由于 JS
代码应该使用 Ajax
调用,我不得不创建一个 返回 的 scala-controller json
,但不是 html
返回客户端的请求。而且.. 这一切我都不喜欢。这似乎太费力了。
在 playframework
模板方面,我应该考虑如何将 Scala
与 JavaScript
结合起来,将参数从一种语言传递到另一种语言。使用一些技巧,例如在处理 JS 时显示 that,在应该关闭时显示 that。
这一切都让我的模板更难理解,有一天,当我拥有庞大的代码库时,我可能会想出一个解决方案来复制我的模板(js 模板 + scala 模板)-在 JS
关闭/打开时使用正确的模板。那么 JS 代码量可能会上升到 60%。。
然后我似乎要复制所有内容,比如拥有两个不同的应用程序 - Google 和人。常见的(仅)是我的数据本身在我的数据库中,我不必复制数据。但是..我们可能对该数据的格式有不同的问题(并且很可能是基于 json 的 [因为我不会浪费处理器时间来进行表对象转换],但不是基于表的 - NoSQL .. 然后我们又一次像对待 DB 一样对待 JS - 就像对待 MongoDB) 一样,JS
与 Json 配合得很好,原生。
那么问题来了,为什么不将 100% 的 JS
用于简单的事情,比如:请求-响应,形成一个页面,布局。服务器端 JS
Controller 可以形成我的模板——这样我就不需要从一种语言切换到另一种语言,从这个意义上讲甚至可以提高工作效率。
问题:你有什么建议吗?关于这个的最佳实践?我不是那种想要最终使用 NodeJS
来使用 JavaScript
作为所有东西的一种语言的人 - 用于服务器和客户端。但让我们谈谈生产力和业务需求。
有一个AnjularJS Controller 的例子(不是我的),我要写多少JS: https://github.com/tastejs/todomvc/tree/gh-pages/architecture-examples/angularjs/js
想象一下,我必须同时保留 PlayFramework Controller - 对于 HTML 和 AJAX 调用,将 scala/playframework 模板中的内容与 JavaScript 混合。
最佳答案
我想分享最终种子中使用的收据(https://github.com/angyjoe/eventual):
编写您的 HTML。为此,请随意使用任意数量的 JavaScript 框架和库(尽管种子是 AngularJS)。
确定 Controller 遵循的 Play 模型。
为每个 Controller (list
、create
、show(id)
确定操作(仅您需要的!) , 更新(id)
, 删除(id)
)。将这些操作实现为 Scala 操作。
插入 Play 路由以将每个已实现的操作提供给客户端框架。
插入一个(而且只有一个!)Play 路由以将您的样式化 HTML 提供给客户端框架。
将剩余的开发时间和精力花在客户端...
关于javascript - Scala Play Framework 和 Angular JS - 在重复和混合概念方面付出了太多努力,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18790544/
我是一名优秀的程序员,十分优秀!