以下是angular.io的代码片段:
{ provide: RUNNERS_UP, useFactory: runnersUpFactory(2), deps: [Hero, HeroService] } ... export function runnersUpFactory(take: number) { return (winner: Hero, heroService: HeroService): string => { /* ... */ }; };
我的问题是为什么deps
在这里使用房产?使用的一般情况是deps
什么?
这是一种告诉Angular依赖注入的方法,它需要为返回的工厂函数注入哪些依赖项runnersUpFactory
.
在服务方面存在的@Injectable()
类地告诉DI,这需要分析这个类的构造函数参数(同为@Component()
,@Directive()
和@Pipe()
),但这似乎不是为职能的工作.因此他们引入了deps
参数.
DI将使用密钥Hero
和另一个使用密钥查找提供程序HeroService
,然后将它们作为参数以相同的顺序传递给工厂函数.
https://angular.io/docs/ts/latest/api/core/index/FactoryProvider-interface.html
deps : any[]
需要由进样器解析的标记列表.值列表用作useFactory
函数的参数.