Унясенне аднаго сэрвісу ў іншы ў Angular

Для працы над праектам нам можа спатрэбіцца ўнесці адзін сэрвіс у іншы, каб пашырыць іх функцыянальнасць. Давайце зробім яшчэ адзін сэрвіс, які будзе выводзіць паведамленні ў кансоль пры даданні новых дадзеных.

Спачатку ў тэчцы test/src/app ствараем файл log.service.ts. Экспартуем клас LogService, у якім прапішам функцыю write для вываду паведамлення ў кансоль:

log.service.tsimport { Injectable } from '@angular/core';

@Injectable()
export class LogService {
  write(message: string) {
    console.log(message);
  }
}

Далей пераходзім у наш сэрвіс DataService і імпартуем, інжэктруем і выкарыстоўваем наш новы сэрвіс:

app/data.service.tsimport { Injectable } from '@angular/core';
import { LogService } from './log.service'; // імпартуем

@Injectable()
export class DataService {
  private data: string[] = ['a', 'b', 'c'];
  
  constructor(private logService: LogService) { // інжэктруем
    
  }
  
  getData(): string[] {
    this.logService.write('data received'); // выкарыстоўваем
    return this.data;
  }
  
  addData(name: string){
    this.data.push(name);
    this.logService.write('new elem added'); // выкарыстоўваем
  }
}

Гэтага, аднак, мала. Трэба яшчэ прапісаць новы сэрвіс і ў класе кампанента, хоць ён там непасрэдна і не выкарыстоўваецца:

app/app.component.tsimport { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // імпартуем

@Component({
  ........
  providers: [DataService, LogService] // дадаем
})