[英]Angular2 DI Debug
有没有一种方法可以在控制台中调试Angular 2依赖项注入以检查创建的服务的顺序?
例如:
正在创建“ AuthService”的实例...
正在创建“ UserService”的实例...
我收到一些奇怪的错误,例如:
Reflection_provider.js:240未捕获无法解析“ 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));
在大多数情况下,这是因为无法解析服务的第一个构造函数参数的类型。
例如:
import {SomeType} from './something'; // wrong import
import {URLFileItemReader} from './reader'; // rightimport
@Injectable()
export class ScaffoldStorage {
constructor(private service:SomeType, private reader:URLFileItemReader) {
(...)
}
}
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.