【问题标题】:How share Angular app between two projects如何在两个项目之间共享 Angular 应用程序
【发布时间】:2016-08-29 15:10:16
【问题描述】:

我有一个使用 Angular 和自己的控制器、指令等的网页。

我需要创建另一个页面,这个页面必须加载相同的Angular应用,两个项目之间的区别只是模板。

我不想为控制器的每次更改更新两个不同的项目。

如何在两个项目之间共享代码的最佳解决方案? 以及将其添加到 git 的更好方法(实际上我只有一个 git 存储库用于应用程序和第一个应用程序的模板)

更新

应用具有这种结构

/var/www/site-a/htdocs/
                      |- index.html
                      |- /app
                      |    |- app.js
                      |    |- directives.js
                      |    |- controllers.js
                      |    |- filters.js
                      |    |- /templates
                      |- /css
                      |- /images
                      |- /bower_components

/app 文件夹下的所有代码(/templates 除外)都相同 我认为有两种方法:

A) 两个不同的应用

网站 A

/var/www/site-a/htdocs/
                      |- index.html
                      |- /app
                      |    |- config.js
                      |    |- /templates
                      |- /css
                      |- /images
                      |- /bower_components

网站 B

/var/www/site-b/htdocs/
                      |- index.html
                      |- /app
                      |    |- config.js
                      |    |- /templates
                      |- /css
                      |- /images
                      |- /bower_components

共享应用文件的网站

/var/www/site-app/htdocs/
                      |- app.js
                      |- directives.js
                      |- controllers.js
                      |- filters.js

在这种情况下,我在 Git 上有三个项目,应用程序和控制器是相同的

B) 一个应用程序

/var/www/site-app/htdocs/
                      |- index.html
                      |- /app
                      |    |- app.js
                      |    |- directives.js
                      |    |- controllers.js
                      |    |- filters.js
                      |    |- /templates
                      |             |- /site-a
                      |             |- /site-b
                      |- /css
                      |    |- /site-a
                      |    |- /site-b
                      |- /images
                      |    |- /site-a
                      |    |- /site-b
                      |- /bower_components

在这种情况下,我只有一个 git 项目

但我有一些疑问:

  • 如何将不同的 CSS 加载到 index.html 中?我需要不同的站点指向不同的索引文件吗?
  • 如何为每个站点加载不同的模板(或配置文件)?我可以根据网站 URL 进行不同的设置吗?

哪种解决方案更好?

【问题讨论】:

  • 如果模板映射 1:1,这太好了,难以置信,我会将 HTML 放入具有相同结构的两个不同目录中,并添加存储当前目录值的提供程序以从中获取模板。两个应用程序将具有不同的瘦入口点模块,它们具有相同的依赖项,但提供者配置不同。
  • @Klaster_1 你能解释一下如何为每个站点(入口点)加载不同的配置吗?

标签: angularjs git


【解决方案1】:

我认为您可以使用变量链接到您的模板?

我没有尝试,但也许可以使用:

.directive('myDirective', function() {
  return {
    template: linkToTheTemplate
  };
});

控制器和路由也是如此。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2017-11-28
    • 2018-11-18
    • 1970-01-01
    • 2018-04-19
    • 2014-07-05
    • 2017-12-17
    • 1970-01-01
    相关资源
    最近更新 更多