Մեկ սերվիսի ներառումը մյուսի մեջ 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('տվյալները ստացվել են'); // օգտագործում ենք
    return this.data;
  }
  
  addData(name: string){
    this.data.push(name);
    this.logService.write('նոր տարր ավելացված է'); // օգտագործում ենք
  }
}

Սա, սակայն, բավարար չէ։ Անհրաժեշտ է նաև ավելացնել նոր սերվիսը կոմպոնենտի կլասում, թեև այն ուղղակիորեն այնտեղ օգտագործված չէ։

app/app.component.tsimport { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // իմպորտում ենք

@Component({
  ........
  providers: [DataService, LogService] // ավելացնում ենք
})