【发布时间】:2018-11-22 07:39:06
【问题描述】:
我正在尝试在我的 Ionic 3 项目中实现一些自定义类,以帮助以适当的 OOP 方式处理数据。但是,我认为我想要实现的实际上是 Angular 和 Ionic 设计模式的反模式。
对于每个用户,我想创建一个用户对象。我有一个名为provider 的提供程序,它执行一些http 调用。每个用户对象都可以使用一种方法来进行provider 的http 调用。
如果我像这样通过构造函数传递Provider,这可以正常工作:
export class User {
//...various user attributes....
constructor(payload, public provider: Provider){
this.provider.doSomethingHttp(payload).subscribe(val => {
// do something with response
})
}
}
如果我这样做是不行的:
export class User {
//...various user attributes....
public provider: Provider;
constructor(payload){
this.provider.doSomethingHttp(payload).subscribe(val => {
// do something with response
})
}
}
提供者现在是undefined。
为什么会这样?提供者必须通过构造函数传递吗?
另外,如果我在某处实例化一个新的User 类,我将不得不为提供者传递参数,这也不起作用。
let user = new User(payload, this.provider)
显然,似乎有一些更好的方法来处理这个问题。也许最好不要让一堆漂浮的对象在那里进行自己的 http 调用。
【问题讨论】:
标签: angular typescript ionic-framework