【发布时间】:2016-11-18 09:55:08
【问题描述】:
我正在开发一个(非常)巨大的 Angular 2 应用程序,作为我公司的内部工具。应用由不同的子应用组成,只有特定用户才能访问。
为了做到这一点,我尝试使用 CanActivate 类返回一个可观察对象,查询我的一项服务以验证访问权限,但是当我尝试导入服务时,该类的构造函数无效。
所以我在应用程序本身中移动了测试,但它以同样的方式失败了。所以很可能问题出在服务本身。非常奇怪的是,apps 容器使用的是同一个服务,完全没有任何问题(该服务还提供可用应用程序的列表,生成应用程序菜单)。
我很确定问题出在组件的加载顺序上(可能与Http 相关),但我不知道去哪里找。遗憾的是,鉴于应用程序的复杂性,我很难找出问题所在,而且我不知道该怎么办。
我搜索了类似的问题,也发现了类似的情况,但是Angular2的开发也在同时向前推进,那些解决方案已经没有用了。
【问题讨论】:
-
如果没有minimal reproducible example 和具体的错误,几乎不可能提供帮助。
-
你把
@Injectable()放在你的CanActivate类上面了吗? -
@jonrsharpe 你是绝对正确的,但正如我所说,我不可能隔离这种行为。应用太复杂
-
@PierreDuc 当然有,正如我所说,服务在容器中使用没有任何问题。
-
该问题具体与上一个服务中的Http注入有关。顺序是 AppsService -> GenericService -> Http。以某种方式删除 Http,它可以正确编译。
标签: angular angular2-di angular2-injection