[英]Injecting a service into another class - Angular2
我有一个名为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'.
我该如何解决?
createGroup()
是一个实例方法,您正在尝试将其用作静态方法。 使用依赖注入:
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);
}
}
然后将GroupFactory注入需要创建组并使用的组件中
let myGroup = this.groupFactory.createGroup();
myGroup.name = 'foo';
myGroup.save();
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.