使用自定义创建的类中的ionic2提供程序

时间:2018-01-14 17:58:45

标签: angular typescript ionic2

我不知道如何妥善表达这个问题,但基本上,我在我的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的构造函数中传递提供程序

1 个答案:

答案 0 :(得分:0)

删除此

constructor (**public config: any**) {}

公共配置:任何

声明这个内部构造函数

然后通常在您的模式中对您的提供商进行十分转换

public yourProvider: YourMainProviderName