如何在 class in ionic 中使用 provider

How to use provider in class in ionic

我创建了一个 class(不是组件),我希望它使用来自提供商 (MyService) 的数据。例如:

export class MyClass {
  arg1 : Number;

  constructor(arg : Number, private myService : MyService) {
    this.arg1 = arg;
  }

  calc() {
    console.log(this.arg + this.myService.arg2);
  }
}

现在,我想创建这个 class 的新实例:

let a : MyClass = new MyClass(7);

但我缺少 1 个参数... 如何创建具有提供者的 class 实例?可能吗?还是我没用好?

假设您在某个组件中调用 MyClass:MyComponent。

在那个组件中,你有注入服务 MyService 的构造函数,在构造函数中或任何你想用参数初始化 MyClass 的地方,例如:

@Component({})
export class MyComponent{
    constructor(public myService: MyService){
        let a: MyClass = new MyClass(7, this.myService);
    }
}

或者如果你想在构造函数之外调用它:

@Component({})
export class MyComponent{

    let a: MyClass;

    constructor(public myService: MyService){
        this.a = new MyClass(7, this.myService);
    }

    someMethod(): void {
        this.a.calc();
    }

}

而且,在您的 class 中,将变量分配给传递的参数 myService:

export class MyClass {
    arg1 : Number;
    myService: MyService;

    constructor(arg : Number, private myService : MyService) {
        this.arg1 = arg;
        this.myService = myService;
    }

您必须在构造函数中提供对服务的引用。

假设您正在尝试在另一个 class 中创建您的 class 的实例, 所以你必须定义这样的东西。

你的原创class

export class MyClass {
  arg1 : Number;
  myservice: MyService;

  constructor(arg : Number, private myService : MyService) {
    this.arg1 = arg;
    this.myservice = myService;
  }

  calc() {
    console.log(this.arg + this.myService.arg2);
  }
}

Class 您正在其中创建新实例

export class AnotherClass {
   constructor(public myService: Myservice){
    let a : MyClass = new MyClass(7,myService);
   }
}

现在您可以像这样使用引用了 -

a.calc()