想象一下像LoggingService
這樣的服務,它具有log(msg: string)
方法。使用Angular 2依賴注入,組件中的服務實例很容易。然而,我找不到一個可靠的解決方案,可以在任何不是Angular 2組件,服務等的普通類中使用LoggingService。組件,服務等的角度2服務注入
E.g.該應用程序具有包含一個文件blacklist.ts:
export class Blacklist {
isBlacklisted(name: string): boolean {
let result = false;
if(value == "Alice" || value == "Bob") {
result = true;
LoggingService.log("Name'" + name + "' is blacklisted");
}
return result;
}
}
假設LoggingService
在AppModule
提供。我如何在上面的例子中檢索服務的一個實例?
爲什麼不做個黑名單服務? –
您可以通過編程方式獲取(根)依賴關係注入器的位置,然後在其提供程序註冊表中搜索特定服務,但在您的示例中它沒有意義。如果你在普通的課堂上,而你不在Angular上下文中,那麼你將很難與Angular實體進行交流。就像JB說的,把你的代碼變成服務有什麼問題? – AngularChef