Angular多次提供通用服务

时间:2018-08-17 06:57:58

标签: angular dependency-injection

我创建了一个通用服务,我希望提供多次服务,包括通用服务。我尝试了以下解决方案。

使用 useFactory 提供。这给我一个错误,因为我的 GenericRepository 在构造函数中有一些 DI 服务,现在它希望我能够通过。我不知道。

{ 
    provide: USERS_REPOSITORY_TOKEN,
    useFactory: () => (new GenericRepository<ApplicationUser>()) 
}, 
{
    // Provide a few more generic repositories
}

使用useClass提供。这给了我<ApplicationUser>部分的错误:Value of type 'typeof GenericRepository' is not callable. Did you mean to include 'new'?

{ 
    provide: USERS_REPOSITORY_TOKEN,
    useClass: GenericRepository<ApplicationUser>
},
{
    // Provide a few more generic repositories
}

到目前为止,我找到了一个解决这些问题的解决方案,但是我认为这很丑陋,因为我最终只能得到大约10个我的 GenericRepository 提供的商品和多个 DI 存储库中的参数。

{
    provide: USERS_REPOSITORY_TOKEN,
    deps: [LoggingService],
    useFactory: (loggingService: LoggingService) => {
        return new GenericRepository<ApplicationUser>(loggingService); 
    }
},
{
    // Provide a few more generic repositories
}

谢谢!

0 个答案:

没有答案