W3docs

angular

Der Router-Dienst muss in einem Angular-Modul explizit bereitgestellt werden, um ihn in einer anderen Komponente über DI zu verwenden.

Übe dein Wissen

Der Router-Dienst muss in einem Angular-Modul explizit bereitgestellt werden, um ihn in einer anderen Komponente über DI zu verwenden.

Erklärung

Nutzung des Router-Dienstes in Angular

Die Aussage, dass der Router-Dienst in einem Angular-Modul explizit bereitgestellt werden muss, um ihn in einer anderen Komponente über Dependency Injection (DI) zu verwenden, ist laut der vorliegenden Frage falsch.

In Angular wird der Router-Dienst automatisch bereitgestellt, wenn das RouterModule in Ihrer Anwendung importiert wird. Daher muss dieser Service nicht explizit in einem Modul bereitgestellt (provided) werden.

Stellen Sie sicher, dass das RouterModule in der @NgModule Deklaration Ihres Hauptmoduls (oder jedes Moduls, das Routen verwendet) importiert wird, wie im folgenden Code-Snippet gezeigt:

import { NgModule }      from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { RouterModule }   from '@angular/router';

@NgModule({
  imports:      [ BrowserModule, RouterModule ],
  declarations: [ AppComponent ],
  bootstrap:    [ AppComponent ]
})
export class AppModule { }

Sobald das RouterModule importiert ist, kann der Router-Dienst über DI in jeder Komponente der Anwendung verwendet werden, indem er im Konstruktor der Komponente injiziert wird, wie im folgenden Code-Snippet gezeigt:

import { Component } from '@angular/core';
import { Router } from '@angular/router';

@Component({
  selector: 'my-component',
  template: `
    <button (click)="navigateToHome()">Go to home</button>
  `,
})
export class MyComponent {
  constructor(private router: Router) {}

  navigateToHome() {
    this.router.navigate(['/home']);
  }
}

In diesem Beispiel wird der Router-Dienst im Konstruktor injiziert, und die Methode navigate des Dienstes wird verwendet, um programmgesteuerte Navigation innerhalb der Anwendung zu ermöglichen.

Wichtig ist, dass Angular die Bereitstellung von Diensten mithilfe des DI-Systems automatisiert, um Code-Wiederverwendung und -Trennung zu fördern und die Code-Testbarkeit zu verbessern. Daher gibt es in der Regel keine Notwendigkeit, Dienste manuell bereitzustellen, es sei denn, Sie benötigen eine spezielle Konfiguration oder einen spezifischen Bereitstellungsmechanismus.

Willst du mehr davon? Mach das komplette Angular Grundlagen-Quiz.

Quiz Starten