Մեկ սերվիսի ներառումը մյուսի մեջ Angular-ում
Նախագծի վրա աշխատելու համար մեզ կարող է անհրաժեշտ լինել մեկ սերվիս ներառել մյուսի մեջ, որպեսզի ընդլայնենք դրանց ֆունկցիոնալությունը։ Եկեք ստեղծենք ևս մեկ սերվիս, որը կպատասխանի նոր տվյալներ ավելացնելիս հաղորդագրություններ արտածելուն կոնսոլում։
Սկզբում test/src/app պանակում ստեղծում ենք
log.service.ts ֆայլը։ Էքսպորտում ենք
LogService կլասը, որում կգրենք
write ֆունկցիան՝ հաղորդագրությունը
կոնսոլում արտածելու համար։
import { Injectable } from '@angular/core';
@Injectable()
export class LogService {
write(message: string) {
console.log(message);
}
}
Հաջորդիվ անցնում ենք մեր DataService
սերվիս և իմպորտում, ինժեկտում及 օգտագործում ենք
մեր նոր սերվիսը։
import { 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('նոր տարր ավելացված է'); // օգտագործում ենք
}
}
Սա, սակայն, բավարար չէ։ Անհրաժեշտ է նաև ավելացնել նոր սերվիսը կոմպոնենտի կլասում, թեև այն ուղղակիորեն այնտեղ օգտագործված չէ։
import { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // իմպորտում ենք
@Component({
........
providers: [DataService, LogService] // ավելացնում ենք
})