【发布时间】:2016-11-08 17:12:17
【问题描述】:
有没有办法在控制台中调试 Angular 2 依赖注入来检查服务创建的顺序?
例如:
正在创建“AuthService”实例...
正在创建“UserService”的实例...
我遇到了一些奇怪的错误,例如:
reflective_provider.js:240 Uncaught 无法解析所有参数 'ScaffoldStorage'(未定义,URLFileItemReader)。确保所有 参数用 Inject 修饰或具有有效的类型注释 并且 'ScaffoldStorage' 用 Injectable 装饰。
也许注入器正试图在 AuthService 之前创建 MyService(服务缺失),或者我可能有我不知道的相互依赖的服务..(我在应用程序中有 20 多个服务,在这里列出所有服务是不可行的:()
编辑:
1 - 我忘记了最简单的解决方案:在每个服务的构造函数中写“console.log”..
2 - 我刚刚更改了导入顺序,它起作用了.. 有人知道为什么吗?
# Before
# ...
import { AUTH_PROVIDERS } from 'src/authentication';
import { SCAFFOLD_PROVIDERS } from 'src/scaffold';
# ...
# After
# ...
import { SCAFFOLD_PROVIDERS } from 'src/scaffold';
import { AUTH_PROVIDERS } from 'src/authentication';
# ...
# Boostraping: No change
bootstrap(AppComponent, [
# ...
AUTH_PROVIDERS,
ROUTER_PROVIDERS,
SCAFFOLD_PROVIDERS,
# ...
provide(PLATFORM_DIRECTIVES, {useValue: SHARED_DIRECTIVES, multi: true})
]).catch((error: Error) => console.error(error));
【问题讨论】:
-
ScaffoldStorage是否用@Injectable装饰?
标签: debugging dependency-injection angular