【问题标题】:DI error in subcomponent子组件中的 DI 错误
【发布时间】: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


【解决方案1】:

我花了一整天的时间来解决这个问题,但我想通了......几乎。
这与 DI 无关,而是 const 导入有问题(当然,给出的错误绝对具有误导性),我真的不知道为什么。我移动了它,现在它可以正常工作了。 还是谢谢你。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-02-23
    • 2021-11-19
    • 1970-01-01
    • 2016-05-30
    • 2017-12-09
    • 1970-01-01
    相关资源
    最近更新 更多