我使用的是ionic2,也就是Angular2,但是这个问题更多是Angular2而不是Ionic框架。我有一个这样的提供者:
import {Injectable, Provider, Inject} from '@angular/core';
import {Http, Response, Headers} from '@angular/http';
@Injectable()
export class MyFirstProvider{
constructor( @Inject(Http) http) {
this.http = http;
}
.
.
.
我有另一个提供商,例如:
import {Injectable, Provider, Inject} from '@angular/core';
import {Http, Response, Headers} from '@angular/http';
@Injectable()
export class MySecondProvider{
constructor( @Inject(Http) http) {
this.http = http;
}
myCoolFunction(){
console.log('I am one cool function');
}
.
.
.
如何在 MyFirstProvider 中使用 MySecondProvider 的 myCoolFunctions?
最佳答案
通过注入(inject)
@Injectable()
export class MyFirstProvider{
constructor(private http:Http,
private mySecond: MySecondProvider) {}
someMethod(){
this.mySecond.myCoolFunctions();
}
}
这些类是服务,而不是提供者。这些服务可以而且需要注册为提供商。提供者是键和值构建指令的组合。 当 DI 查找类型(键)时,它会搜索组件注入(inject)器及其父注入(inject)器,直到找到具有匹配键的注入(inject)器,然后返回其实例(服务)。
关于javascript - 如何在提供者内部使用提供者,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37490193/