60
задан 13 March 2018 в 03:10

2 ответа

Если Ваши сервисные методы являются чистыми функциями, очевидный способ для решения, это должно иметь статических участников в сервисе.

Ваш сервис

import {Injectable} from '@angular/core';
@Injectable()
export class myService{
  public static dosomething(){
    //implementation => doesn't use `this`
  }
}

Ваш класс

export class MyClass{
  test(){
     MyService.dosomething(); //no need to inject in constructor
  }
}
1
ответ дан 1 November 2019 в 10:49

locator.service.ts

import {Injector} from "@angular/core";

export class ServiceLocator {
    static injector: Injector;
}

app.module.ts

@NgModule({ ... })

export class AppModule {
    constructor(private injector: Injector) {
        ServiceLocator.injector = injector;
    }
 }

poney.model.ts

export class Poney {

    id: number;
    name: string;
    color: 'black' | 'white' | 'brown';

    service: PoneyService = ServiceLocator.injector.get(PoneyService); // <--- HERE !!!

    // PoneyService is @injectable and registered in app.module.ts
}
0
ответ дан 1 November 2019 в 10:49

Другие вопросы по тегам:

Похожие вопросы: