2016-11-18 58 views
-1

我正在开发一个(真的)巨大的Angular 2应用程序作为我公司的内部工具。该应用程序由不同的子应用程序组成,只能由特定用户访问。子组件DI错误

为了做到这一点,我尝试使用CanActivate类返回一个observable,查询我的一个服务来验证访问,但是当我尝试导入服务时,类的构造器失效。

所以我在应用程序本身中移动了测试,但是它以相同的方式失败。所以问题可能出在服务本身上。非常奇怪的是,应用程序容器使用相同的服务,根本没有任何问题(该服务还提供可用应用程序的列表,生成应用程序菜单)。

我很确定问题是组件的加载顺序(可能与Http相关),但我不知道在哪里寻找。可悲的是,鉴于应用程序的复杂性,我很难区分问题,而且我不知道该怎么做。

我搜索了类似的问题,发现了类似的情况,但Angular2的开发已经向前发展,这些解决方案已经变得毫无用处。

+0

没有[mcve]和具体的错误,几乎不可能提供帮助。 – jonrsharpe

+0

你有把@Injectable()放在CanActivate类的上面吗? – PierreDuc

+0

@jonrsharpe你是绝对正确的,但正如我所说,我不可能孤立这种行为。该应用程序太复杂 –

回答

0

我花了整整一天的时间解决了这个问题,但我明白了......差不多。
这不是DI相关的,但有一个常量导入错误(当然,给出的错误是绝对误导),我真的不知道为什么。我移动它,现在它正常工作。 反正谢谢你。