Viena servisa ieviešana citā Angular
Lai strādātu pie projekta, mums var būt nepieciešams ievietot vienu servisu citā, lai paplašinātu to funkcionalitāti. Veidosim vēl vienu servisu, kurš izvadīs ziņojumus konsolē, pievienojot jaunus datus.
Sākumā mapē test/src/app izveidojam
failu log.service.ts. Eksportējam
klasi LogService, kurā pierakstīsim
funkciju write ziņojuma izvadei
konsolē:
import { Injectable } from '@angular/core';
@Injectable()
export class LogService {
write(message: string) {
console.log(message);
}
}
Tālāk dodamies uz mūsu servisu DataService
un importējam, injicējam un izmantojam
mūsu jauno servisu:
import { Injectable } from '@angular/core';
import { LogService } from './log.service'; // importējam
@Injectable()
export class DataService {
private data: string[] = ['a', 'b', 'c'];
constructor(private logService: LogService) { // injicējam
}
getData(): string[] {
this.logService.write('dati saņemti'); // izmantojam
return this.data;
}
addData(name: string){
this.data.push(name);
this.logService.write('jauns elements pievienots'); // izmantojam
}
}
Tomēr ar to nepietiek. Vēl jāpievieno jaunais servisā arī komponenta klasē, kaut gan tas tur tieši netiek izmantots:
import { Component } from '@angular/core';
import {DataService} from './data.service';
import {LogService} from './log.service'; // importējam
@Component({
........
providers: [DataService, LogService] // pievienojam
})