1

我正在构建一个项目,其中我们有一个模块充当我们的外壳,处理全局样式、导航等,ng:view并由我们的第二个模块提供的指令填充所有页面。

我真的很想找到一种方法让外壳检查页面模块,动态发现导航结构,而不是手动定义它或让每个页面都在pages模块和shell模块中注入自身。就其本身而言,注射器似乎不喜欢这样做。

编辑

澄清一下:虽然我对 pagesProvider 服务有一个极好的解决方法,但我仍在寻找关于 Angular 1.2.x 是否具有内省模块的机制的答案。

4

1 回答 1

2

首先:最后,所有injected 对象(如服务、过滤器、控制器)最终都会放在一个大袋子里(比如全局命名空间)。所以将每个page注入pagespages注入就足够了shell。(注意名称冲突的可能性。)

其次:目前还不支持延迟加载模块。所以你应该事先知道你所有的模块,所以实际上不需要检查哪些对象存在,哪些不存在,因为它们要么全部存在,要么应用程序根本没有启动。

我不知道您所说的发现实际上是什么意思nav structure以及如何定义它。但是,你可以做的是:

  1. 在每个页面模块中定义一个constantnav structure页面的存储位置。
  2. 在需要时访问它constantshell如果您需要动态了解id活动页面,只需在某处设置此信息 - 可能是value- 当页面被激活时。

一些替代方案:

  1. 定义一个hash-mappage-ids 到page-nav-structures 的全局变量。
  2. 使用将被注入到每个页面并用于注册页面和所有相关信息的公共服务。
于 2013-12-05T14:35:25.537 回答