簡體   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