Ich kann eine Angular-Komponente nicht rendern, und ich kann es nicht herausfinden.AUSNAHME: Uncaught (in Promise). Eingespritzter Service in Angular 2
Es ist etwas mit der Methode verbunden, die eine Dienste für das Injizieren von Daten aufruft. Es kehrt die error's Nachricht unter:
AUSNAHME: abgefangene (in Versprechen)
Das ist mein entsprechender Code:
cartelera-list.component.ts
import { Component, OnInit } from '@angular/core';
import { CarteleraService } from './cartelera.service';
import { Pelicula } from './pelicula.model';
@Component({
selector: 'cartelera-list',
template: `
<ul>
<li *ngFor="let pelicula of cartelera">
<p>+++ {{ pelicula.titulo }} - {{ pelicula.genero }} - {{ pelicula.duracion }} </p>
</li>
</ul>
`,
providers: [CarteleraService]
})
export class CarteleraListComponent implements OnInit {
public cartelera: Pelicula[];
contructor(private carteleraService: CarteleraService) {}
getPeliculas(): void {
this.carteleraService.getPeliculas().then((cartelera: Pelicula[]) => this.cartelera = cartelera);
}
ngOnInit(): void {
this.getPeliculas();
}
}
carterera.service.ts
import { Injectable } from '@angular/core';
import { Pelicula } from './pelicula.model';
import { CARTELERA } from './pelicula-data';
@Injectable()
export class CarteleraService {
getPeliculas(): Promise<Pelicula[]> {
return Promise.resolve(CARTELERA);
}
}
Der vom Service zurückgegebene Parameter CARTELERA ist nur eine const Verbindung durch eine Liste von Pelicula (Interface - Modell).
Hinweis: Der complet message's Fehler ist:
AUSNAHME: abgefangene (in Promise) Kann nicht Eigentum 'getPeliculas' undefinierter Fehler lesen.
Hinweis: Ich habe versucht, diesen Satz vor
contructor (privat carteleraService: CarteleraService) {}
Aber, wenn ich es benutzt, wird der nächste Fehler angezeigt, in der Kompilierung Zeit.
app.module.ts
import { NgModule } from '@angular/core';
import { BrowserModule } from '@angular/platform-browser';
import { FormsModule } from '@angular/forms';
import { AppComponent } from './app.component';
import { routing } from './app.routing';
import { SociosComponent } from './socios.component';
import { Index } from './index';
import { CarteleraComponent } from './cartelera.component';
import { CarteleraListComponent } from './cartelera-list.component';
@NgModule({
imports: [
BrowserModule,
FormsModule,
routing
],
declarations: [
AppComponent,
SociosComponent,
Index,
CarteleraComponent,
CarteleraListComponent
],
bootstrap: [ AppComponent ]
})
export class AppModule {}
Bitte, überprüfen Sie mi zusätzliche Notiz. @echonax –
Bitte, überprüfen Sie zusätzlich Hinweis. @ AJT_82 –
Für den Teufel davon, "bieten" den Service von dem Modul, dass diese Komponente gehört (also "app" oder was auch immer sonst, wenn Sie ein Feature-Modul verwenden). Ansonsten mach alles gleich (mit der korrekten Konstruktorkonfiguration). Schau was passiert. Was eine Anwendungsarchitektur/-muster angeht, tendiere ich dazu, in Bezug auf die Bereitstellung von Modulen und das Konsumieren von Komponenten zu denken, und die Beispiele und so weiter scheinen dies zu bestätigen. Ich bin mir nicht sicher, ob ich jemals versucht habe, einen Dienst von einer Komponente "bereitzustellen", und ich bin mir nicht einmal sicher, ob eine Komponente sich selbst einen Dienst "anbieten" kann (oder sollte). –