将服务注入另一个类 - Angular2

时间:2016-10-07 18:28:47

标签: angular

我有一个名为ApiEndpoint的注射服务。我需要在另一个类中使用此服务,但是我遇到了问题。

代码如下:

//apiEndpoint.ts
@Injectable()
export class ApiEndpoint {

  constructor(private _http: Http) {}

  createGroup() { this._http...) 
}

// group.ts

import {ApiEndpoint} from './apiEndpoint';

  export class Group {
    public name: string;

    constructor(){}

    save(){
       ApiEndpoint.createGroup();  <== ERROR
    }
  }

我们很少有地方导入'group.ts'并执行以下操作

let myGroup = new Group();
 myGroup.name = 'foo';
 myGroup.save();

我收到以下错误:

Property 'createGroup' does not exist on type 'typeof ApiEndpoint'.

如何解决此问题?

1 个答案:

答案 0 :(得分:3)

Object [] combinedObjects = {1, 2, 3, "Hello", "World"}; String [] combinedStrings = {"1", "2", "3", "Hello", "World"}; 是一个实例方法,您尝试将其用作静态方法。使用依赖注入:

createGroup()

然后在需要创建组的组件中注入GroupFactory,并使用

export class Group {
    public name: string;

    constructor(private apiEndpoint; ApiEndpoint ){}

    save() {
       this.apiEndpoint.createGroup();
    }
}

@Injectable()
export class GroupFactory {
    constructor(private apiEndpoint: ApiEndpoint) {}

    createGroup() {
        return new Group(this.apiEndpoint);
    }
}