我使用的是ionic2,它是Angular2,但这个问题比Ionic框架更像Angular2。我有一个这样的提供者:
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的myCoolFunction?
答案 0 :(得分:1)
通过注入
@Injectable()
export class MyFirstProvider{
constructor(private http:Http,
private mySecond: MySecondProvider) {}
someMethod(){
this.mySecond.myCoolFunctions();
}
}
这些类是服务,而不是提供者。这些服务可以并且需要注册为提供者。提供者是密钥和价值构建指令的组合。 当DI查找类型(键)时,它会搜索组件注入器及其父注入器,直到找到具有匹配键的那个,然后返回其实例(服务)。