У меня есть класс обслуживания параметров, подобный следующему:
import { Injectable } from '@angular/core';
import { Http, Headers, RequestOptions, RequestMethod } from '@angular/http';
import { Common } from './common';
import { CacheService } from "ionic-cache";
@Injectable()
export class PMService {
constructor(public http: Http, public comm: Common, private cache: CacheService) {
}
...
}
Я использую этот класс обслуживания на страницах, как обычно:
import { PMService } from '../../providers/pm-service';
@Component({
selector: 'page-home',
templateUrl: 'home.html'
})
export class HomePage {
myParameters;
constructor(private pm: PMService ..) {
}
getMyParameter(){
this.pm.getParameters("ParameterKey").then(result=>{
this.myParameters= result;
});
}
...
}
Я создал другой класс, который включает в себя stati c методы. Я хочу инициализировать свойство stati c в конструкторе этого класса. Я не могу использовать конструктор (private pm: PMService) {} из-за свойства stati c. Я попробовал следующий код, но он ожидает аргументы конструктора. Как правильно делать то, что я хочу?
import { PMService } from "./pm-service";
function construct(target: any) {
target.construct();
}
@construct
export class Manager {
private static counter: number = 0;
private static defaultManagerValue: number = 0;
static construct() {
var pm = new PMService();
this.defaultManagerValue = // I want to get this value from PMService;
}
public static incrementCounter() {
this.counter++;
}
public isCounterEqualMyParameter(){
return this.counter == this.defaultManagerValue;
}
...
}