1

Ich versuche, zu einer Seite mit einem RouterLink zu navigieren, nachdem ich eine ID bekommen habe, die ich bekommen kann.Angular 2 Routing - Router RC3

Das Problem ist der Link wird angezeigt als '/ Seite; ID = 10/Komponente'. Ich möchte es als '/ Seite/10/Komponente' zeigen (nicht Notation Matrix - keine '; id =')

In meinem app.routes.ts:

@RouterConfig = [ 
    { path: 'page/:id/component', component: MyComponent, data: {id: 'item.id'} } 
]; 

In meiner Seite :

<a [routerLink]="['page', {id: item.id}, 'component']"> 

Ich verwende die neueste Angular 2 Router-Komponente (RC3 Beta 2).

Wer weiß, was ich falsch mache? Danke im Voraus.

Antwort

1

sollte sein:

<a [routerLink]="['page', {'id': item.id}, 'component']"> 

statt:

<a [routerLink]="['/page', item.id, 'component']"> 
+0

Danke. Ich habe das versucht, aber immer noch das Gleiche ... – Netwraith

+0

Ich mache dasselbe in der App, an der ich arbeite. Vielleicht hast du woanders Fehler. Stellen Sie sicher, dass ROUTER_DIRECTIVES in der Liste der Komponentenrichtlinien enthalten ist. – Yhlas

+0

Seltsam. Ich habe auch die Router-Anweisungen in meiner Direktiven-Liste. – Netwraith

0

dieses Versuchen

<a [routerLink]="['page', item?.id, 'component']"> 
+0

Danke. Versuchte das auch, aber erhalten Sie eine "kann Eigenschaft nicht lesen" zuString "undefined" Fehler, wahrscheinlich bezogen auf "Einzelteil". Ich erhalte jedoch einen Gegenstand über einen Dienst und zeige dort eine andere Eigenschaft an anderer Stelle auf der Seite an. – Netwraith

+0

Versuchen Sie, elvis Operator wie in meiner aktualisierten Antwort –

+0

vorgeschlagen, Hmm, versuchte, dass immer noch kein Glück: | Derselbe Fehler ist – Netwraith

0

Von dem, was ich diese Strecke Konfiguration sehen können, funktioniert nicht:

{ path: 'page/:id/component', component: MyComponent, data: {id: 'item.id'} } 

Ich denke, was Sie wirklich fragen müssen, ist, ob die endgültige '/component' notwendig ist. Wenn dies der Fall ist, sollten Sie eine child route hinzufügen.

Eine andere Option wäre, die Reihenfolge Ihrer Route zu ändern, indem Sie stattdessen page/component/:id verwenden. Ich glaube, dass die Routerlink-Anweisung Ihre URL-Suchparameter an das Ende der Route anhängt, also sollte dies funktionieren.

Auch hier wäre die einfachste Lösung, einfach '/component' aus der Routenkonfiguration zu entfernen.