Ich habe mir folgendes angesehen: https://github.com/mgechev/angular-seed um das Angular Module System in seiner einfachsten Form zu verstehen.Angular2 Modulsystem mit TS
In diesem Seed-Projekt gibt es eine SharedModule
, die sowohl index.ts
als auch shared.module.ts
hat. In shared.module.ts
exportiert es den eckigen Weg - mit Direktiven, Exporten, Providern usw. In index.ts
reexportiert es diese. In app.module.ts
importiert es SharedModule.forRoot()
, die perfekt ist - das registriert die NameListService
, um für die gesamte Anwendung verfügbar zu sein. Wenn jedoch die NameListService
verwendet werden soll, muss sie importiert werden, und dies erfolgt über import { NameListService } from '../shared/index';
wie in home.component.ts
dargestellt, die übrigens Teil der home.module.ts
ist, die auch die SharedModule
importiert.
Laut mir ist das total falsch.
Warum sollte ich es so importieren - das bricht Modularität - was ist, wenn ich ein Modul verwende, das ich nicht geschrieben habe und daher nicht weiß, wo genau nach einer Datei zu suchen ist?
Warum würde ich mich dann damit beschäftigen, Dinge in shared.module.ts
zu erstellen und zu registrieren, wenn ich sie dann über die shared/index.ts
verwenden muss statt nur die shared/index.ts
?
Mit freundlichen Grüßen
Ja. Ich weiß das, aber es fühlt sich merkwürdig (unnötig) an, beide Systeme nebeneinander zu verwenden, ohne dass sie miteinander kommunizieren. Mein Problem mit dem obigen Beispiel ist, dass ich angeben muss, wo der UserService über Pfad ist, obwohl es Teil eines gültigen Angular-Moduls ist. – mp3por
Ich habe meine Antwort aktualisiert –