Коришћење сервиса у Angular-у

У претходној лекцији смо креирали сопствени сервис DataService. Хајде сада да га увеземо у компоненту:

app/app.component.tsimport { Component } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { DataService } from './data.service'; // овде

У декоратору @Component у својству providers треба навести наш сервис:

app/app.component.ts@Component({
  .....
  providers: [ DataService ] // овде
})

Сада ћемо искористити специјални приступ, који се зове убризгавање зависности (dependency injection). Његова суштина се састоји у томе што у конструктору компоненте можемо проследити наш сервис као параметар и он ће аутоматски доспети у приватно својство наше компоненте. Погледајте у коду:

app/app.component.tsexport class AppComponent {
  constructor(private dataService: DataService) { // убризгавамо зависност
    console.log(this.dataService); // сервис у приватном својству
  }
}

Убризгавање за наш сервис ради, јер sмо му раније применили декоратор Injectable.

Хајде сада у конструктору класе компоненте да добијемо податке из нашег сервиса, позивајући одговарајућу методу:

app/app.component.tsexport class AppComponent {
  public data: string[] = [];
  
  constructor(private dataService: DataService) {
    this.data = this.dataService.getData();
  }
}

Хајде да прикажемо добијене податке у темплејту компоненте:

app/app.component.html<ol>
  <li *ngFor="elem of data">
    {{ elem }}
  </li>
</ol>
Задание 1

Добијте артикле из вашег сервиса у компоненти и прикажите их у темплејту компоненте.

Задание 2

Направите у вашем сервису методу за додавање новог артикла. У компоненти направите дугме, по клику на које ће се додавати нови артикал.

Задание 3

Направите форму са два поља за унос и дугметом, по притиску на које ће се додавати нови артикл.