有没有办法在控制台中调试Angular 2依赖注入以检查创建的服务的顺序?
例如:
创建" AuthService" ...
的实例创建" UserService" ...
的实例
我遇到了一些奇怪的错误:
reflective_provider.js:240 Uncaught无法解析所有参数 ' ScaffoldStorage'(undefined,URLFileItemReader)。确保所有的 参数使用Inject进行修饰或具有有效的类型注释 那' ScaffoldStorage'用Injectable装饰。
也许注入器试图在AuthService之前创建MyService(服务缺失)或者我可能有相互依赖的服务,我不知道..(我在应用程序中有20多个服务,不可行列出所有这里:()< / p>
修改
1 - 我忘了最简单的解决方案:写&#34; console.log&#34;在每个服务的构造函数中..
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));
&#13;
答案 0 :(得分:0)
大部分时间,因为您的服务的第一个构造函数参数的类型无法解析。
例如:
import {SomeType} from './something'; // wrong import
import {URLFileItemReader} from './reader'; // rightimport
@Injectable()
export class ScaffoldStorage {
constructor(private service:SomeType, private reader:URLFileItemReader) {
(...)
}
}