Як сервисиро ба сервиси дигар ворид кардан дар 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('data received'); // истифода бурдан
return this.data;
}
addData(name: string){
this.data.push(name);
this.logService.write('new elem added'); // истифода бурдан
}
}
Аммо, ин кофӣ нест. Инчунин зарур аст, ки сервиси навро дар класи компонент ҳам нависем, гарчанде ки он бевосита дар он ҷо истифода намешавад:
import { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // импорт кардан
@Component({
........
providers: [DataService, LogService] // илова кардан
})