我正在开发一个目前最新的 Angular RC5 和 Material Design 项目。并不是说最后一部分是相关的。
由于显而易见的原因,我开始创建单独的模块并不再将所有内容都放在主模块中。然而,我需要拥有在所有模块之间共享的提供程序。 F/E 我有一项服务可以与我们的后端系统进行最终连接。不同模块的 URL 等在不同的提供者上设置。所有这些服务目前也是一个单独的 git 项目的一部分,因为我还在我们的 iOnic 应用程序和其他前端中使用它们。
那么我该如何获得这个在我为项目创建的所有模块之间共享实例的服务呢?
另外,我想创建一个仪表板,显示当前安装/可用模块中的“小部件”。这也取决于用户能明显看到什么。 Java中的类似构造将通过组件扫描/反射来解决。在 Angular 中,我假设我会创建一个全局可用的提供程序,我可以在其中添加要放置的类型,然后在仪表板上可用?
最后一部分对于模块来说可能很棘手,因为一切都是分开的,任何人都可以分享一些想法吗?它们基本上是两个问题,但我相信它们应该以非常相似的答案来解决。
Edit:
因此,就我而言,我想了解现有的路线,这与我提出的另一个问题有关,但与此有关。
我想做的是这样的
@NgModule({
import:[
BaseModule,
someConstContainingRoutes
],
})
export class SubModuleWithRouting implements OnInit {
//Import routeAuthService from BasicModule
constructor(private routeAuthService: RouteAuthService){};
ngOnInit() {
this.routeAuthService.addRoutes(someConstContainingRoutes);
}
}
像这样的模式可以让我避免在主组件或w/e中设置我的服务中的路由。当然,我们可以在第一次加载或 w/e 时执行此操作,但感觉不对。
我想其他开发人员也必须做类似的事情,但我现在无法真正看出哪种模式适合这里。
也许已经有这样的钩子可用了。
我的BaseModule
对这个模块一无所知。我的路由可以选择包含某些权限值(这只是一个枚举)。上canActivate
我想检查这个,所以我觉得它应该知道路线,因为我似乎无法在canActivate
挂钩并为每个权限设置它似乎很愚蠢。