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

Angular 2接口用于服务

发布时间:2020-12-17 08:33:59 所属栏目:安全 来源:网络整理
导读:我想开发一个搜索组件. 这是用例: 此组件使用搜索的术语参数调用服务. 服务调用api端点并将结果对象作为a返回 采集. 组件在模板中显示结果. 我想只编写一个能够根据具体情况调用不同服务的搜索组件. 想象一下,我有两个服务: SearchInMaleEmployeeService S
我想开发一个搜索组件.
这是用例:

>此组件使用搜索的术语参数调用服务.
>服务调用api端点并将结果对象作为a返回
采集.
>组件在模板中显示结果.

我想只编写一个能够根据具体情况调用不同服务的搜索组件.
想象一下,我有两个服务:

> SearchInMaleEmployeeService
> SearchInFemaleEmployeeService

这两种服务都实现了返回员工列表的搜索功能.
我想告诉我的组件哪种服务取决于具体情况.
在C#中,我们可以使用接口告诉组件构造函数使用哪个服务.

我怎么能在Angular2中做到这一点?

额外问题:我如何根据服务返回的对象类型向我的组件说出用于呈现搜索结果的模板?

您可以通过依赖注入实现此目的.

正如您所说,创建两个实现相同ISearchService接口的不同服务.

使用SearchComponent时,请从模块向ServiceComponent提供适当的服务类.

你的SearchComponent看起来像

constructor(private searchService: ISearchService) {}

当在不同的地方使用SearchComponent时提供服务实例:

providers: [
  { provide: ISearchService,useValue: SearchInMaleEmployeeService}
]

要么

providers: [
  { provide: ISearchService,useValue: SearchInFemaleEmployeeService}
]

有关Angular2依赖注入here的更多信息.

更新:

正如本指出的那样

提供语句需要编码为

provide('ISearchService',{useClass: SearchInMaleEmployeeService})

并将类注入组件:

constructor(@Inject('ISearchService') private searchService:ISearchService) {}

(编辑:李大同)

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

    推荐文章
      热点阅读