*.ngfactory.ts: Supplied parameters do not match any signature of call target.

Wer beim Bauen über die folgende Fehlermeldung stolpert hat irgendwo eine Methode aufgerufen, ohne die erforderlichen Parameter zu übergeben:

Problem: *.component.ngfactory.ts (xx,yy): Supplied parameters do not match any signature of call target.

Irrtümlicherweise z.B. bei der Angular-Methode ngOnChanges(), die in vielen Dokumentationen ohne Parameter angepriesen wird. Der korrekt, vollständige Aufruf sieht allerdings wie folgt aus:

ngOnChanges(changes: {[ propName: string]: SimpleChange}) { ... }

7 äußerst nützliche Tools für die Arbeit mit Angular

Minko Gechev hat in seinem Blog 7 Tools zusammengestellt, die einem die Arbeit mit Angular mehr als erleichtern. Neben der bekannten Angular Cli stechen (m.M.n.) vorallem Tools wie ngrev, Augury, sowie Compodoc & ngd heraus, die einem die Visualisierung und Dokumentation einer Angular App extrem vereinfachen.

  • ngrev ist ein Tool für Reverse-Engineering von Angular Apps
  • Augury ist eine Extension für Entwickler zum Debuggen von Angular 2 Apps
  • compodoc/ngd lässt einen die Abhängigen einer Angular 2 App ansehen

Neue Komponente anlegen

Zum Anlegen neuer Komponenten empfiehlt es sich auf die angular cli zurückzugreifen.
Mit dem Befehl

ng generate component <NAME>

wird die Komponente in einem neuen Ordner angelegt, inkl. aller notwendiger Dateien (.ts, .html, .css und .spec.ts).

Zusätzlich wird die Komponente automatisch im Modul (app.module.ts) importiert und damit automatisch anderen Komponenten zur Verfügung gestellt.

Die Befehle (generate, component, …) können auch abgekürzt werden:
generate => g
component => c

Wer keinen extra Unterordner und sowohl das CSS als auch das Template inline erstellen möchte, kann auf folgenden Befehl zurück greifen:

ng g c —flat —inline-style —inline-template

—flat => kein Unterodner
—inline-style (Abkürzung: -is) => inline CSS
—inline-template (Abkürzung: -it) => inline Template