Angular2 RC5 跨模块提供程序/扫描

2024-01-11

我正在开发一个目前最新的 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挂钩并为每个权限设置它似乎很愚蠢。


模块的提供者在全球范围内提供。

一个例外是延迟加载的模块,它有自己的子注入器。 延迟加载模块的提供者的范围仅限于此模块。

如果您希望全局添加延迟加载模块的提供者,请使用

static forRoot()到你的模块和

export class SharedModule {
  static forRoot(): ModuleWithProviders {
    return {
      ngModule: SharedModule,
      providers: [ UserService ]
    };
  }
}

所以它可以导入

 imports: [
    SharedModule.forRoot()
  ],

也可以看看https://angular.io/docs/ts/latest/guide/ngmodule.html#!#shared-module-for-root https://angular.io/docs/ts/latest/guide/ngmodule.html#!#shared-module-for-root

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Angular2 RC5 跨模块提供程序/扫描 的相关文章

随机推荐

  • 如何使用 Gradle 创建发布签名的 apk 文件?

    我想让我的 Gradle 构建使用 Gradle 创建一个发布签名的 apk 文件 我不确定代码是否正确或者我在执行时是否缺少参数gradle build 这是我的一些代码build gradle build gradle kts file
  • 全二叉树的叶节点数

    Problem求一棵有 n 个节点的满二叉树的叶节点数 我为上述问题编写了一个递归程序 遍历树并在到达没有子节点的节点时增加叶节点的数量 但由于树是一个完整的二叉树 我认为这会让问题变得更容易 但我不知道如何解决 能否以紧凑的形式 类似于公
  • 如何确定我是否作为控制台应用程序运行? (Win32 上的德尔福)

    我有一个通用单元 可以将一些日志记录到 GExperts Debugger 和 或 OutputDebugString 我将在控制台应用程序中使用它 所以我希望它能够通过输出到标准输出writeln 主要可执行文件已经有 APPTYPE C
  • 如何将XAMPP中的phpMyAdmin升级到最新版本?

    如何在不影响数据库 设置和文件的情况下将XAMPP中的phpMyAdmin升级到最新版本 该网站将对您的目的有用 https www ostraining com blog coding update phpmyadmin https ww
  • 如何强制 Apache 使用最新安装的 PHP 版本

    我使用以下命令从 PHP 版本 5 5 9 1ubuntu4 17 升级到 PHP 5 6 23 1 deb sury org trusty 2 apt get y update add apt repository ppa ondrej
  • 如何使用包内 Excel 文件第一行中指定的列名称?

    谁能告诉我如何更改默认列名称 F1 F2 F3等 将数据从 Excel 源导入到 SSIS 2005 中的 OLEDB 目标时 示例 我的 Excel 电子表格中的数据如下所示 Title ProvinceID DistrictID Con
  • 调试 Windows 服务的更简单方法

    有没有比通过 Windows 服务控制管理器启动服务然后将调试器附加到线程更简单的方法来逐步执行代码 这有点麻烦 我想知道是否有更直接的方法 如果我想快速调试服务 我只需添加一个Debugger Break 在那里 当到达该线时 它会将我带
  • 如何使用ffmpeg的sws_scale()调整图片大小?

    我想使用 ffmpeg 的 func gt sws scale 来调整图片大小 有谁知道该怎么做吗 有这个函数的源码吗 首先你需要创建一个SwsContext 您只需执行一次 struct SwsContext resize resize
  • 暂停新的 BackGroundWorker 直到前一个完成

    我正在努力解决线程问题 问题是当我迭代 foreach 循环时 设置时this Document 应用程序执行登录 这是由事件触发的 需要几秒钟才能完成 在里面worker RunWorkerCompleted方法 我需要执行一些取决于当前
  • 如何在 SQLAlchemy 列/外键混合中指定 PostgreSQL 架构?

    现有的 PostgreSQL 数据库具有以不同 模式 组织的表 以分割大型数据库 既用于扩展 又在服务器级别实现微调的安全性 同样 declarative base 表描述被组织在包中的不同文件中 每个模式一个文件 package init
  • 类似 IOS 7 天气 APP 的过渡/动画

    我想实现iOS天气应用程序 如转换 ListView 点击列表项它会展开到详细视图 或者捏合列表也会展开到详细视图 左右滑动过渡 请让我知道如何实施 提前致谢 Here is 我在博客上找到的一些帖子 http www teehanlax
  • 如何使用scrapy将多个页面的数据收集到单个数据结构中

    我正在尝试从站点中抓取数据 数据被构造为多个对象 每个对象都有一组数据 例如 人员的姓名 年龄和职业 我的问题是这些数据在网站中分为两个级别 例如 第一页是姓名和年龄的列表 其中包含指向每个人的个人资料页面的链接 他们的个人资料页面列出了他
  • 如何知道 Visual Studio 中定义某个宏的位置

    我目前有一个使用 DirectX 的视觉工作室项目 代码中有一些宏 例如 range 0 m lBatchSize LONG m nBatched field ecount opt m lBatchSize IMediaSample m p
  • C++ 概念复合了需求和返回类型需求

    上次我将 C 概念与 GCC 和 fconcepts 标志一起使用时 以下代码片段曾经起作用 template
  • 从 MATLAB 中的文件读取图像

    我的计算机上的图像文件夹中有 bmp 图像 我把它命名为1 bmp to 100 bmp 我想像这样阅读这些图像 for i 1 100 s C images i bmp A imread s end 但是Matlab报错了 我怎样才能实现
  • java中hashcode方法的用途是什么? [复制]

    这个问题在这里已经有答案了 当我们有equals compareTo 方法 为什么有一个hashcode Java 中的方法 如果我们使用HashTable我们必须重写hashcode 方法 除了快速访问随机密钥之外还有什么特殊原因吗 如果
  • 自动布局:什么创建名为 UIView-Encapsulated-Layout-Width & Height 的约束?

    我的布局约束在 Interface Builder 中很好 但由于框架的某些部分应用了我真正不想要的固定高度和宽度约束 因此在运行时发生异常 它们为何存在以及如何将其关闭 它们是记录列表中显示的最后两个约束 2014 04 26 09 02
  • MASM 汇编中的“功能级链接”(即 COMDAT 生成)?

    有没有办法让 MASM 为函数生成 COMDAT 以便链接器删除未使用的函数 即我正在寻找相当于 Gy对于 MASM 并不简单 但可行 讨论过here http www asmcommunity net forums topic id 99
  • PHP 使用一个数组作为多维数组的子数组的键

    所以我得到了一个一维数组 例如 Array 0 gt md5 1 gt name 2 gt description 3 gt url 和一个多维数组 Array 0 gt Array 0 gt md5 1 1 gt name1 2 gt d
  • Angular2 RC5 跨模块提供程序/扫描

    我正在开发一个目前最新的 Angular RC5 和 Material Design 项目 并不是说最后一部分是相关的 由于显而易见的原因 我开始创建单独的模块并不再将所有内容都放在主模块中 然而 我需要拥有在所有模块之间共享的提供程序 F