何时使用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实例调用工厂函数. (编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |