首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >为何在DI中使用‘DI’属性

为何在DI中使用‘DI’属性
EN

Stack Overflow用户
提问于 2017-01-24 06:59:22
回答 1查看 8.1K关注 0票数 11

下面是来自angular.io的代码片段

代码语言:javascript
复制
{ provide: RUNNERS_UP,    useFactory:  runnersUpFactory(2), deps: [Hero, HeroService] }

...

export function runnersUpFactory(take: number) {
  return (winner: Hero, heroService: HeroService): string => {
    /* ... */
  };
};

我的问题是为什么这里使用deps属性?使用deps的一般情况是什么?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2017-01-24 07:02:52

这是一种告诉角度依赖注入的方法,它需要向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函数的参数。

票数 14
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/41821883

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档