簡體   English   中英

如何在Angular中動態創建服務?

[英]How can I dynamically create a service in Angular?

我正在嘗試在運行時給定一個字符串名稱(即反射)來動態實例化服務。 就像是:

let myService = new window[myClassName](myParams);

或者,或者:

let myService = Object.create(window[myClassName].prototype);
myService.constructor.apply(myService, myParams);

我看過Injector類,但它需要一種類型,而不是字符串( https://angular.io/api/core/Injector )。

關於如何實現這一目標的任何想法?

您仍然可以將Injector與字符串結合使用。 只是以您想要使用它們的方式向您的提供程序提供問題。 這是Angular頁面上的示例: https [provide: Square, useClass: Square] [provide: Square][provide: Square, useClass: Square] (您可以使用useFactory代替useClass當你想自己實例化服務),您可以更改第一個參數( provide由基本上任何你想要的符號),所以也字符串。 看看我設置的這個POC https://stackblitz.com/edit/angular-mg1ezb

你可以試試

instance = new window["yourClassName"]();

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM