【问题标题】:What is the optimal architecture combining Scala-Play and AngularJS?结合 Scala-Play 和 AngularJS 的最佳架构是什么?
【发布时间】:2017-02-08 16:50:01
【问题描述】:

我最近在一个纯 Scala-Play 应用程序中工作,后来又在一个纯 AngularJS 应用程序中工作。两者都给我留下了深刻的印象,我想知道将这两个框架结合在一起的最佳点是什么。由于这两个框架可以互补,但也可以在不同的领域重叠,例如。 MVC 和页面路由,据我所知这些是一些可能性:

  1. 单页设计,仅使用 AngularJS MVC 并使用 Scala-Play 作为“枯燥”的服务层后端,没有整页刷新。

  2. 允许页面重新加载,并且每个页面重新加载成为不同的 AngularJS 根应用程序。这似乎很灵活,例如对于较大的应用程序,客户端不会因大量数据而臃肿,而是针对不同的用例进行了更好的分区。缺点是我需要不同的 AngularJS MVC 应用程序,我什至不知道如何将它组织为一个项目。有这样的例子吗?

  3. 典型的服务器端 Web 应用,仅使用 Play MVC 和 AngularJS 来处理每个单独页面的 UI 模型。

对于这些类型的架构,我选择的 IDE 当然是 WebStorm,但不幸的是,我不能在一个项目中拥有所有客户端(AngularJS 和 JavaScript)和服务器端(Scala-Play)代码。

【问题讨论】:

    标签: angularjs playframework webstorm


    【解决方案1】:

    我相信不存在结合 Play 和 Angular 的终极最佳架构。这取决于项目、团队等的具体情况。

    使用 Angular 开发 UI 部分并使用 Play 开发服务器端后端的决定是非常合理的。从技术上讲,它可以如下完成:

    1. 发展:

      • 这两个部分都是使用首选 IDE 作为独立项目开发的。

      • 客户端应该有一些入口点 HTML 页面。将其命名为 index.html 是合理的,但也可以是任何其他名称。

    2. 对于客户端-服务器集成,请在 Play 端执行以下操作:

      • 在播放应用程序根目录下选择一个子文件夹,它将作为客户端文件的“家”。默认解决方案是使用文件夹 public,因为它下面的所有文件都会自动部署。
      • 应将所有客户端文件复制到 public 文件夹下。文件可以以任何结构组织。
      • 为默认 URL 添加一个路由作为到 index.html 的路由。路由中的参数 path 应该是 index.html 相对于应用程序根目录的完整路径。 如果index.html直接在public文件夹下,路由是这样的:

        GET /defaultUrl   controllers.Assets.at(path="/public", file ="index.html")  
        
      • 向客户端文件添加路由:

        GET /*file  controllers.Assets.at(path="/public", file)  
        

    现在分发包将包含所有客户端文件。

    将客户端文件放入 public 文件夹应该是自动完成的,例如通过组织客户端目录结构和客户端 IDE 的适当配置。

    您可以在this post 中找到更多示例。

    【讨论】:

    • 请在此处添加更多信息。不鼓励没有任何附加信息的外部链接
    • 感谢您的反馈,只是为了省力。
    猜你喜欢
    • 2020-08-03
    • 2015-01-18
    • 1970-01-01
    • 2011-11-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2022-06-10
    相关资源
    最近更新 更多