【发布时间】:2016-11-09 14:35:22
【问题描述】:
我正在编写一个 Angular2 应用程序。考虑一个我实例化了许多实例的类 Cat,它有一个 API 方法来写出自己:
class Cat {
constructor(private name: string) { }
public write() {
Api.write(this); // <== how do I do this?
}
}
Cat#write 方法需要访问包裹在Http 周围的 API 服务:
@Injectable()
class Api {
constructor(private http: Http) { }
write(data) {
this.http.post(...);
}
}
我遇到的(也许很简单)问题是如何从我的Cat 类中访问API#write。由于我需要 Cat 构造函数来传递名称,因此我不能将其用于注入。那么如何使API#write 可用呢?有什么方法可以访问Api 的单例实例吗?在那种情况下,谁来负责实例化单例实例?
我使用了一个静态 API 类,但这显然不起作用,因为注入是在实例中,而不是静态类中。
我在这里缺少什么基本的设计模式?
【问题讨论】:
标签: dependency-injection angular