Ich habe eine Angular 4-Anwendung. Ich habe einen Service, der einige Daten von einer API holt, und ich habe eine Komponente, die es anzeigen sollte. Ich weiß nicht, wie ich den Dienst als Argument für die Komponente übergeben soll. Jede Hilfe wird zutiefst geschätzt. Dies ist das Beste, was ich geschafft:Angular 4 übergibt einen Dienst an eine Komponente von Routen
import {
Component,
OnInit
} from '@angular/core';
import { Title } from './title';
@Component({
selector: 'home',
providers: [
Title
],
styleUrls: [ './home.component.css' ],
templateUrl: './home.component.html'
})
export class HomeComponent implements OnInit {
constructor(
) {}
people: Person[] = [];
ngOnInit(){
peopleService
.getAll()
.subscribe(p => this.people = p)
}
}
ich über this article gekommen sind, die zeigt, wie Argumente an Komponenten passieren, aber in meinem Fall keine Komponente enthält HomeComponent, aber es ist nur in den Routen registriert:
import { Routes } from '@angular/router';
import { HomeComponent } from './home';
import { AboutComponent } from './about';
import { NoContentComponent } from './no-content';
export const ROUTES: Routes = [
{ path: '', component: HomeComponent },
{ path: 'home', component: HomeComponent },
{ path: 'about', component: AboutComponent },
{ path: 'detail', loadChildren: './+detail#DetailModule'},
{ path: 'barrel', loadChildren: './+barrel#BarrelModule'},
{ path: '**', component: NoContentComponent },
];
ich gerade tat dies und bekam ERROR Fehler: Uncaught (in Versprechen): Fehler: Kein Anbieter nur für PeopleService der Fehler ging weg, nachdem ich Anbieter hinzugefügt: [PeopleService] HomeComponent – GregJF
ist Ihr '' HomeComponent ein Teil Ihrer 'app.module.ts', Bedeutung ist es in der' Deklarationsarray? Wenn nicht, das ist das Problem. Auch wenn Sie diesen 'PeopleService' nur in Ihrer HomeComponent verwenden würden, ist es nicht falsch, ihn nur als Provider auf Komponentenebene zu setzen, aber meistens verwenden wir dafür' SharedModule'. –