angular2:注入通用服务?

时间:2017-02-20 14:16:53

标签: angular angular2-injection

将通用服务注入组件的推荐方法是什么?例如,假设你已经得到了这个:

export class Service<T>{ ... }

现在,假设我们还有一个名为Person的类:

export class Person { ... }

我想把它注入一个组件中:

@Component({
  selector: "frt-X",
  templateUrl: "...",
  providers: [Service<Person>] }) <--ERROR
export class MyComponent {
  constructor(private service: Service<Person>) { }
}

我想知道是否有一种关于提供者类型的具体方法。目前,由于模板未转换为JavaScript,我只是简单地传递服务。

编辑:我试图提供有关我的方案的更多信息。

假设您有两条不同的路线,映射到两个不同的组件。让我们称它们为A和B.现在,假设这些组件中的每一个都有一个内部辅助路由器插座,用于加载不同的组件。让我们说:

A

C |插座:可以加载D或E

F |出口:可以加载G或H

现在,让我们说当D或E加载Person类型的对象时需要通知A,并且当G或H加载Car类型的对象时需要通知B.为了达到这个目的,我使用了一个注入父子组件的服务(我按照官方文档中的说明进行操作)。我已经考虑过使用泛型来指定加载的对象类型。两种情况的代码都是相同的,但在一个地方,内部组件加载Person对象,而在另一个地方,内部组件加载Car对象。

当然,我可以使用对象,但由于TypeScript支持泛型,我认为我应该使用它以获得更好的智能感知和更多&#34;类型安全&#34;。

感谢。

此致 路易斯

0 个答案:

没有答案