【问题标题】:Use an ionic2 provider from a customly created class使用自定义创建的类中的 ionic2 提供程序
【发布时间】: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


    【解决方案1】:

    删除这个

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

    公共配置:任意

    在构造函数中声明 this

    然后在您的模态中通常将您的提供者标记为

    public yourProvider: YourMainProviderName
    

    【讨论】:

    • 我认为您所描述的正是我在AnotherProvider 在我的问题中所做的。不?它没有达到我的目标。
    猜你喜欢
    • 2022-12-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-01-19
    • 1970-01-01
    • 2017-05-11
    • 2011-09-07
    相关资源
    最近更新 更多