如何在提供者内部使用提供者

时间:2016-05-27 18:31:25

标签: javascript angular

我使用的是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?

1 个答案:

答案 0 :(得分:1)

通过注入

@Injectable()
export class MyFirstProvider{

  constructor(private http:Http, 
      private mySecond: MySecondProvider) {}

  someMethod(){
    this.mySecond.myCoolFunctions();
  }
}

这些类是服务,而不是提供者。这些服务可以并且需要注册为提供者。提供者是密钥和价值构建指令的组合。 当DI查找类型(键)时,它会搜索组件注入器及其父注入器,直到找到具有匹配键的那个,然后返回其实例(服务)。