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