繁体   English   中英

Angular2 DI调试

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM