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