【发布时间】:2018-01-14 17:58:45
【问题描述】:
我不知道如何准确地表达这个问题,但基本上,我的 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" })
如果我在MyModel 的构造函数中声明public myProvider: MyProvider,那么当我创建MyModel 的新实例时,我会收到打字稿错误,因为我缺少一个参数(我需要将myProvider 作为论据)。
我想将模型与方法的优势结合起来,我可以使用new MyModel(someConf) 创建它,并有可能从MyModel 轻松使用我的应用程序的其他提供者。
我该怎么做?
注意:我不认为我可以直接在MyModel 中使用MyProvider 的方法,而无需在MyModel 的构造函数中传递提供程序。
【问题讨论】:
标签: angular typescript ionic2