我不知道如何妥善表达这个问题,但基本上,我在我的ionic2应用程序中有一个看起来像这样的文件:
import { MyProvider } from '../providers/myProvider';
export class MyModel {
constructor (public config: any) {}
method1 () {
console.log(this.config)
}
method2 () {
// I want to use a method from MyProvider here, for example, it could look like the following:
myProvider.alert(this.config.text)
}
}
我希望,通过此MyModel
课程,您可以使用MyProvider
中的功能
通常,从提供商处,我会执行以下操作:
import { Injectable } from '@angular/core';
import { MyProvider } from '../providers/myProvider';
@Injectable()
export class AnotherProvider {
constructor (public myProvider: MyProvider) {}
value = "Some text"
method1 () {
myProvider.alert(this.value)
}
}
但我也想这样使用MyModel
:
newModel1 = new MyModel ({ text: "A bit of text" })
如果我在public myProvider: MyProvider
的构造函数中声明MyModel
,那么当我创建MyModel
的新实例时,我会收到打字稿错误,因为我失踪了一个参数(我需要传递myProvider作为参数)。
我想结合使用模型和方法的优势,我可以使用new MyModel(someConf)
创建,并且可以轻松地从MyModel
使用我的应用程序的其他提供程序。
我怎么能这样做?
注意:我不认为我可以直接在MyProvider
中使用MyModel
方法,而无需在MyModel
的构造函数中传递提供程序
答案 0 :(得分:0)
删除此
constructor (**public config: any**) {}
公共配置:任何
声明这个内部构造函数
然后通常在您的模式中对您的提供商进行十分转换
public yourProvider: YourMainProviderName