Унясенне аднаго сэрвісу ў іншы ў 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] // дадаем
})