加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 综合聚焦 > 服务器 > 安全 > 正文

如何在角度2中使用Factory Provider

发布时间:2020-12-17 07:20:03 所属栏目:安全 来源:网络整理
导读:我需要在角度2应用程序中将服务注入另一个服务.在阅读了我推断的文档后,最好的方法是使用 Factory Provider.但是出现了两个问题: 1)文档建议创建一个带有两个“代码段”的HeroServiceProvider类: let heroServiceFactory = (logger: Logger,userService: U
我需要在角度2应用程序中将服务注入另一个服务.在阅读了我推断的文档后,最好的方法是使用 Factory Provider.但是出现了两个问题:

1)文档建议创建一个带有两个“代码段”的HeroServiceProvider类:

let heroServiceFactory = (logger: Logger,userService: UserService) => {
  return new HeroService(logger,userService.user.isAuthorized);
};

export let heroServiceProvider =
  { provide: HeroService,useFactory: heroServiceFactory,deps: [Logger,UserService]
  };

我的问题是这个班级应该怎么样?应该在哪里添加上述代码段?

2)如何/可以使用这家工厂?我明白了,它应该导入为:

import { heroServiceProvider } from './hero.service.provider';

@Component({
  selector: 'my-selector',template: `
  `,providers: [heroServiceProvider]
})

那么如何检索和访问所需的参数化服务呢?

我在app_initalizer上注入了同样的问题,经过长时间的搜索我找到了下面的解决方案.可能这对您的方案有帮助.
@NgModule({
  imports: [ BrowserModule],...
  providers: [
    {
      provide: HeroService,UserService],multi: true
    }
    ]
})
export class AppModule {}


export function heroServiceFactory = (logger: Logger,userService: UserService) => {
    return new HeroService(logger,userService.user.isAuthorized);
};

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读