我正在构建一个项目,其中我们有一个模块充当我们的外壳,处理全局样式、导航等,ng:view
并由我们的第二个模块提供的指令填充所有页面。
我真的很想找到一种方法让外壳检查页面模块,动态发现导航结构,而不是手动定义它或让每个页面都在pages
模块和shell
模块中注入自身。就其本身而言,注射器似乎不喜欢这样做。
编辑
澄清一下:虽然我对 pagesProvider 服务有一个极好的解决方法,但我仍在寻找关于 Angular 1.2.x 是否具有内省模块的机制的答案。
我正在构建一个项目,其中我们有一个模块充当我们的外壳,处理全局样式、导航等,ng:view
并由我们的第二个模块提供的指令填充所有页面。
我真的很想找到一种方法让外壳检查页面模块,动态发现导航结构,而不是手动定义它或让每个页面都在pages
模块和shell
模块中注入自身。就其本身而言,注射器似乎不喜欢这样做。
编辑
澄清一下:虽然我对 pagesProvider 服务有一个极好的解决方法,但我仍在寻找关于 Angular 1.2.x 是否具有内省模块的机制的答案。
首先:最后,所有injected
对象(如服务、过滤器、控制器)最终都会放在一个大袋子里(比如全局命名空间)。所以将每个page
注入pages
和pages
注入就足够了shell
。(注意名称冲突的可能性。)
其次:目前还不支持延迟加载模块。所以你应该事先知道你所有的模块,所以实际上不需要检查哪些对象存在,哪些不存在,因为它们要么全部存在,要么应用程序根本没有启动。
我不知道您所说的发现实际上是什么意思nav structure
以及如何定义它。但是,你可以做的是:
constant
该nav structure
页面的存储位置。constant
。shell
如果您需要动态了解id
活动页面,只需在某处设置此信息 - 可能是value
- 当页面被激活时。一些替代方案:
hash-map
从page-id
s 到page-nav-structure
s 的全局变量。