Përdorimi i shërbimit në Angular

Në mësimin e mëparshëm krijuam shërbimin tonë të personalizuar DataService. Tani le ta importojmë atë në komponent:

app/app.component.tsimport { Component } from '@angular/core';
import { FormsModule } from '@angular/forms';
import { DataService } from './data.service'; // këtu

Në dekoratorin @Component në vetinë providers duhet të specifikojmë shërbimin tonë:

app/app.component.ts@Component({
  .....
  providers: [ DataService ] // këtu
})

Tani do të përdorim një qasje të veçantë, që quhet injektim i varësisë (dependency injection). Thelbi i saj qëndron në faktin se në konstruktorin e komponentit ne mund ta kalojmë shërbimin tonë si parametër dhe ai automatikisht do të përfundojë në vetinë private të komponentit tonë. Shikoni në kod:

app/app.component.tsexport class AppComponent {
  constructor(private dataService: DataService) { // injektojmë varësinë
    console.log(this.dataService); // shërbimi në vetinë private
  }
}

Injektimi për shërbimin tonë funksionon, sepse më parë i kemi aplikuar atij dekoratorin Injectable.

Tani le të marrim të dhënat nga shërbimi ynë në konstruktorin e klasës së komponentit, duke thirrur metodën përkatëse:

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

Le të shfaqim të dhënat e marra në template e komponentit:

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

Merrni produktet nga shërbimi juaj në komponent dhe shfaqini ato në template e komponentit.

Задание 2

Krijoni në shërbimin tuaj një metodë për shtimin e një produkti të ri. Në komponent krijoni një buton, me klikim në të cilin do të shtohet një produkt i ri.

Задание 3

Krijoni një formë me dy inpute dhe një buton, me shtypje në të cilin do të shtohet një produkt i ri.