Angular.js - 我需要设计2个应用程序还是仅设计一个?

时间:2016-02-08 13:55:53

标签: angularjs node.js

我使用Nginx定义了2个虚拟服务器来处理

主域名www.example.com上的营销内容和用户身份验证

用户通过身份验证后,

子域admin.example.com上的管理员应用

        server {
            listen       8080;
            server_name  example.com;
            root html;
            location / {
                index  index.html index.htm;
            }
        server {
            listen       8080;
            server_name  admin.example.local;
            root   html/admin;
            location / {
                index  index.html index.htm;
            }
        }

我想使用Angular.js单页应用处理营销内容 和管理员的东西与Angular.js多页面应用..

有可能吗?我应该设计2个应用程序还是仅1个ap?

2 个答案:

答案 0 :(得分:1)

我不认为你应该拆分它们,因为它们可能需要许多相同的功能/数据。想想DRY design

您不希望为一个项目维护两个代码库,或者每次API发生更改时都必须修补两次。

仔细查看$route文档并相应地规划您的实施:您可以为管理员设置一条孤立的路径,而无需复制任何内容。此外,即使在同一个域中,您也可能遇到一些奇怪的XHR问题,您必须专门为它们编写代码。

简而言之,这是我的答案:不要拆分它。如果您绝对想要 admin.domain.com ,只需从DNS重定向到 domain.com/admin 并在单个代码库中处理它。在线下,您可以稍微重构您的代码,以匹配您想要的确切行为。看看这里有一些灵感:Dynamic routing by sub domain with AngularJS

答案 1 :(得分:0)

您可以使用模块获取分开的代码。

理想情况下,您应该如何制作3个独立的项目:

  1. 一个通用模块 - 没有带ng-app或angular.bootstrap的索引。它的博物馆将被分享。
  2. 应用程序模块包含带有ng-app和bootstrap模块的index.html
  3. 管理模块包含另一个index.html文件和另一个引导程序模块
  4. 然后你设置2个版本:

    1. 应用程序构建:合并1& 2
    2. ther admin build:merginig 1& 3
    3. 但这可能相当困难。因此,如果您无法正确地完成它,那么您也可以在管理员构建中合并管理员中的应用程序模块。这不应该是一个问题。