Scala PlayFramework和Angular JS - 在重复和混合Concetps方面付出了太多努力

ses*_*ses 13 javascript ajax scala playframework-2.0 angularjs

我试着在playframework+ scala+ 上写一个应用程序Angular JS.目的是创建一个Web应用程序,当JavaScript处于OFF状态或浏览器中为ON时,该应用程序可以正常工作.这是通常的要求,当一个人写一个公共站点(这应该是对人和谷歌的索引)

所以我最终写了大约50%的代码JavaScript,有两个(2)文件夹名为"controller" - 一个用于Scala代码,一个用于JS代码(因为AngularJS也使用控制器概念).

此外,由于JS代码应该使用Ajax调用,我不得不创建一个返回的scala-controller json,但不会html返回客户端的请求.而且......这一切我都不喜欢.这似乎太费劲了.

playframework模板方面,我应该想到如何结合Scala使用JavaScript,传递参数从一种语言到另一种.使用一些技巧,如显示的是当JS会被处理,显示的是当它应该被关闭.

这一切都使我的模板不那么难以理解,有一天,当我拥有庞大的代码库时,我可能会想出一个复制模板的解决方案(js模板+ scala模板) - 在JS关闭/打开时使用正确的模板.那么JS代码的数量可能会增加到60%..

然后我似乎要复制一切,比如有两个不同的应用程序 - 谷歌.什么是常见的(仅)是我的数据本身在我的数据库中,我不必复制数据.但是......在那里我们可能会遇到与该数据格式不同的问题(并且很可能是基于json的[因为我不浪费处理器时间来进行表对象转换],而不是基于表的 - NoSQL ..然后我们再次像JS一样来到JS - 就像MongoDB一样,并且本身就JS与Json一起工作得非常好.

然后问,为什么不使用的100%,JS简单的喜欢的东西:请求-响应,形成一个页面,布局.服务器端JS控制器可以形成我的模板 - 然后我不需要从一种语言切换到另一种语言,并且在这个意义上更高效.

问: 你有什么建议吗?这方面的最佳做法?我不是那种人谁想要最终使用NodeJS使用JavaScript作为一种语言用于一切-服务器和客户端.但是,让我们谈谈生产力和业务需求.

有一个AnjularJS控制器的例子(不是我的),我要编写多少JS:https: //github.com/tastejs/todomvc/tree/gh-pages/architecture-examples/angularjs/js

并且想象一下我必须保持PlayFramework控制器 - 对于HTML和AJAX调用,将scala/playframework模板中的东西与JavaScript混合.

use*_*946 5

我想分享最终种子中使用的收据(https://github.com/angyjoe/eventual):

  1. 写你的HTML.这样做,请随意使用尽可能多的JavaScript框架和库(尽管种子是AngularJS).

  2. 确定控制器遵循的Play模型.

  3. 决定操作(只有那些你需要!)每个控制器的(list,create,show(id),update(id),delete(id)).将这些操作实现为Scala操作.

  4. 插入Play路由以向客户端框架提供每个已实现的操作.

  5. 插入一个(只有一个!)播放路径,将样式化的HTML提供给客户端框架.

  6. 将剩余的开发时间和精力花在客户端......


mys*_*all 2

我刚刚制作了一个示例项目,展示了如何使用 Scala.js 编写 AngularJS/Play 应用程序:

https://github.com/greencatsoft/scalajs-angular-todomvc

应该有一些粗糙的边缘,但我相信能够用 Scala 编写所有内容(包括 AngularJS 部分)可以吸引一些人。