Kurs Angular · Moduł 5: Serwisy i DI

Dependency Injection - System Dostaw Zamku

1 min czytania ·
W tej lekcji2

Dependency Injection (DI) to wzorzec, w którym Angular automatycznie dostarcza zależności do komponentów i serwisów - jak system zaopatrzenia dostarczający broń i prowiant do zamków.

Wstrzykiwanie Serwisów

Sposób 1: inject() (Angular 14+, zalecany)

import { Component, inject } from '@angular/core';
import { KatanaService } from './services/katana.service';

@Component({
  selector: 'app-forge',
  standalone: true,
  template: `
    <h2>Kuźnia Katany</h2>
    <button (click)="forgeKatana()">Wykuj Katanę</button>
    <ul>
      @for (katana of katany; track katana.id) {
        <li>{{ katana.name }} - {{ katana.damage }} DMG</li>
      }
    </ul>
  `
})
export class ForgeComponent {
  private katanaService = inject(KatanaService);
  katany = this.katanaService.getAll();

  forgeKatana(): void {
    this.katanaService.forge('Masamune', 'Tachi');
    this.katany = this.katanaService.getAll();
  }
}

Sposób 2: Constructor Injection (klasyczny)

@Component({...})
export class ForgeComponent {
  constructor(private katanaService: KatanaService) {}

  forgeKatana(): void {
    this.katanaService.forge('Masamune', 'Tachi');
  }
}

inject() vs Constructor

Cechainject()Constructor
SkładniaProstszaStandardowa
Używanie w funkcjachTak (z ograniczeniami)Nie
DziedziczenieŁatwiejszeWymaga super()
TestowaniePodobnePodobne

Hasła z dokumentacji w tej lekcji

Widzisz błąd w tej lekcji?

Sprawdź się

Odpowiedz na pytania z tej lekcji. Wybierz odpowiedź, a od razu zobaczysz, czy jest poprawna.

  1. 1. Która metoda wstrzykiwania serwisów jest zalecana od Angular 14+?

  2. 2. Czym jest Dependency Injection (DI) w Angular?

To 2 z 3 pytań do tej lekcji. Pozostałe rozwiążesz w grze.

Zadania praktyczne w grze

  • Układanie w poziomie

    Ułóż linię wstrzykującą serwis przez inject() (lewo do prawa):

  • Edytor kodu

    Uzupełnij komponent tak, by pobrał SamuraiService bez konstruktora, wprost przy deklaracji pola.

  • Układanie w pionie

    Uporządkuj linie komponentu wstrzykującego serwis przez konstruktor (klasyczny sposób):

Przydatne artykuły