Proxy 安圭拉2镇静
我正在研究微服务,更确切地说是Angular2微服务。主要的想法似乎很简单,但它变得复杂,因为我想让不同的Angular2应用程序保持镇静 我的意思是,假设我有两个应用程序,我没有太多的控制权,应用程序a和应用程序B,由不同的团队创建,每一个服务于不同的东西(一个可能是2D查看器,另一个可能是3D查看器)。我正在考虑构建一种合成代理,在这种代理中,我定义了一个带有一些自定义标记(如Proxy 安圭拉2镇静,proxy,angular,composition,Proxy,Angular,Composition,我正在研究微服务,更确切地说是Angular2微服务。主要的想法似乎很简单,但它变得复杂,因为我想让不同的Angular2应用程序保持镇静 我的意思是,假设我有两个应用程序,我没有太多的控制权,应用程序a和应用程序B,由不同的团队创建,每一个服务于不同的东西(一个可能是2D查看器,另一个可能是3D查看器)。我正在考虑构建一种合成代理,在这种代理中,我定义了一个带有一些自定义标记(如)的html文件,然后让代理制作合成并将其提供给用户 我已经在网上搜索了一段时间了,但我似乎找不到任何关于angul
)的html文件,然后让代理制作合成并将其提供给用户
我已经在网上搜索了一段时间了,但我似乎找不到任何关于angular2的文章。以下是我遇到的几个问题:
- 包含脚本的顺序。由于每个应用程序可能需要包含不同的脚本,因此不按正确的顺序包含脚本可能会使整个应用程序崩溃
- 构建一个全新的正确引导的“核心”组件,只有正确的组件被引导
- 确保一个应用程序的css不会覆盖另一个应用程序的css
- 命名问题,由于应用程序不同,我可能会遇到同名组件
关于构建这样的合成代理,我应该采取哪些方法?是否有任何示例/文档说明如何做到这一点?我不确定我是否理解您想要做什么,但我可以从您的需求中看出,您所需要的只是开箱即用的Angular2功能 1) 包含脚本的顺序。因为每个应用程序可能需要 要包括的不同脚本,但不包括在右侧 订单可能会使整个应用程序崩溃 2) 构建全新的“核心” 正确引导的组件,只有正确的 正在引导的组件等等 3) 确保从一个css 应用程序不会覆盖来自其他命名问题的css,因为应用程序是 我可能会遇到同名的不同组件 我将回答你的观点: 1) 您只需在“应用程序路由”中使用动态模块加载,如下所示:
export function loadModuleA() {
return System.import('./pages/module-A-view/a.module').then(mod => mod.ModuleA)
}
export function loadModuleB() {
return System.import('./pages/module-B-view/a.module').then(mod => mod.ModuleA)
}
export const routes: Routes = [
{
path: 'core/sectionA',
loadChildren: loadModuleA
},
{
path: 'core/sectionB',
loadChildren: loadModuleB
},
如果您导入
模块a中的库在模块B中不可用,除非您明确地导出
它,否则每个模块a和模块B将有自己的依赖关系
2) 您可以在自己的模块文件(简单)中指定“核心”作为mainapp.module.ts
和模块依赖项
3) 实际上,您只需要一个主样式表,然后每个组件都可以有自己的自定义文件。如果使用angular cli,例如每次创建新组件时,cli将生成组件文件、scss文件、html文件和规范文件。否则,您也可以自己轻松完成:
@Component({
selector: 'whatever',
templateUrl: './whatever.component.html',
styleUrls: [ './whatever.component.scss' ]
})
export class WhateverComponent
如果您想要一个特定于(比如)模块a的所有组件的样式表,那么我不知道怎么做。应用程序不是服务。将观众和游戏结合起来到底有什么意义?观众游戏?我认为你应该从一个方面使用另一个方面的功能。然后我们回到了第一步:应用程序不是服务。@zeroflagL我正在寻找一种方法来组合来自不同服务器的完全不同的组件,每个组件都可以独立部署。也许称他们为微服务不是一个明智的选择,这个例子有点极端。一个更好的例子是左侧的2D查看器和右侧的3D查看器,每个查看器都由不同的团队开发。看起来最简单的方法就是使用iFrame。