Routing
Angular hat immer noch keinen Support für Named-Routes, was eine Wiederverwendung von Links im Template und in der Interaktionslogik erschwert.
Pfade sind also hard-gecodet und redundant kopiert, wodurch eine Änderung der Route dann eine Anpassung an vielen Stellen im Code erfordert:
detail.html
<a [routerLink]="['/', 'submissions', exerciseResult.submission.id]">
...
</a>
detail.ts
this.router.navigate(['/', 'submissions', exerciseResult.submission.id]);
Daher wurde ein Prototyp eingebaut, der das adressieren soll. CustomRouterLinkDirective
ermöglicht das vollständige Binding von Linkobjekten. Dies ermöglicht die Erstellung von statisch getypten Direktiven (z.B. SubmissionDetailLinkDirective
), die dann stattdessen so verwendet werden können:
detail.html
<button [submissionDetail]="{ submissionId: submission.id }">
...
</button>
bzw.:
detail.html
<a [submissionDetail]="{ submissionId: submission.id }">
...
</a>
WIP
Dieser Aspekt ist (noch) nicht konsistent umgesetzt.