Wann muss ein Konstruktor in Angular2 Typoskript erstellt werden?
Hier sind einige Beispiele für Konstruktoren aus der Winkel 2 docs:
export class AppComponent implements OnInit {
title = 'Tour of heroes';
heroes: Hero[];
selectedHero: Hero;
constructor(private heroService: HeroService) { }
getHeroes() {
this.HeroService.getHeroes().then(heroes => this.heroes = heroes);
}
}
...
class Car {
constructor(engine, tires, doors){
this.engine = engine;
this.tires = tires;
this.doors = doors;
}
}
Ich verstehe nicht, Warum und Wann erstellen Sie eine constructor()
im Winkel 2 /Typoskript (ich habe gelesen, die offizielle Dokumentation, wo Sie erstellen Sie einen Konstruktor für Dependency Injection und Services).
InformationsquelleAutor der Frage Sarvesh Yadav | 2016-05-18
Du musst angemeldet sein, um einen Kommentar abzugeben.
Konstruktoren definieren, welche Parameter bei der Instantiierung der Objekte. In Typoskript, Sie können auch Modifikatoren wie
private
oderpublic
zu definieren, in der gleichen Zeit-Klasse-Eigenschaften, und legen Sie deren Werte mit den mitgelieferten ersetzen.Beispiel:
ähnlich ist:
In Angular2 Konstruktoren verwendet werden, für dependency injection. Die damit verbundenen decorator (
@Component
oderInjectable
) sammelt Metadaten (Typen oder Hinweise innerhalb@Inject
), um zu bestimmen, was zur Verfügung zu stellen, das Objekt zu instanziieren.Sich bewusst sein, dass Konstruktoren nicht Teil der Komponente Lebenszyklus. Eigenschaften können festgelegt werden, die später durch Angular2 auf dieser Ebene...
InformationsquelleAutor der Antwort Thierry Templier
Controller Konstruktoren sind hauptsächlich für dependency injection /Dienstleistungen, wie Sie erwähnt und auch (in meinen apps) zur Initialisierung komplexer Standard-Werte, basierend auf die Dienstleistungen selbst. Da der Konstruktor ausgeführt wird, bevor der Controller-Vorlage initialisiert - keine Variablen dargestellt wird, genau, daher die Notwendigkeit für
ngOnInit
und andere ähnliche Methoden. Diese "bootstrap" - Methoden sollen verwendet werden, um die normalen 'Bau' - Aufgaben, so dass das template/view auf die Daten zugreifen können.In Bezug auf service-Konstruktoren, ein paar von mir verwenden Sie den Konstruktor normal und initialisiert den verschiedenen teilen des Dienstes, basierend auf bestehenden Nutzer-Daten, wie Sie handeln viel mehr wie standard Klassen.
Diese Antworten helfen:
InformationsquelleAutor der Antwort SamV