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

何时使用Angular 2工厂功能?

发布时间:2020-12-17 17:41:55 所属栏目:安全 来源:网络整理
导读:我无法想象我需要使用工厂提供商的情况. 根据官方文档https://angular.io/docs/ts/latest/guide/dependency-injection.html,情况是一个人可能无法从另一个服务(service-a)中访问服务(service-b),但工厂函数确实(可以访问service-b).那么,什么时候真的会发生
我无法想象我需要使用工厂提供商的情况.

根据官方文档https://angular.io/docs/ts/latest/guide/dependency-injection.html,情况是一个人可能无法从另一个服务(service-a)中访问服务(service-b),但工厂函数确实(可以访问service-b).那么,什么时候真的会发生这样的事情呢?

解决方法

您只需传递课程即可注册提供者

providers: [MyService]

这只适用于Angulars DI可以实例化MyService的情况.

如果你有例如

@Injectable()
class MyService {
  constructor(private http: Http,private String configVal) {}
}

然后DI无法创建实例,因为String不是提供者的有效密钥(原始类型不能作为提供者密钥.

如果您需要,可以使用像

providers: [
    {
      provide: MyService,useFactory: (http) => {
        return new MyService(http,'http://mydbserver.com:12345');
      },deps: [Http]
    }
]

通过这种方式,您可以完全控制新实例的创建方式,而Angulars DI只需要知道它需要使用Http实例调用工厂函数.

(编辑:李大同)

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

    推荐文章
      热点阅读