Zum Hauptinhalt springen

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.