2017-02-27 4 views
4

Ich habe einen RouterLink an den Lead-Wert in einer Tabelle angehängt, die ich im HTML einer angular2-Komponente erstellt habe. Nach dem Klicken auf diesen Tabellenwert möchte ich, dass der routerLink nicht nur an die nächste Komponente sendet, sondern auch den ausgewählten Wert zur nächsten Komponente bringt.Angular2 - RouterLink-Parameter zum ausgewählten Tabellenwert hinzufügen

Beispiel aktuellen Code

<a [routerLink]="['/Records']" ><td> {{Member.Name}} <td></a> 

Ich habe den Link, so dass es auf die Datensätze Seite sendet, aber wie kann ich den Namen diese Komponente zu senden, damit ich den bestimmten Datensatz anzeigen kann, die ich versuche anzeigen?

Antwort

4

eine Route Parameter an die url hinzufügen und dann diesen Wert Zugriff auf die ActivatedRoute mit .

Strecke Definition
{ path: "Records/:name", component: RecordsComponent } 
Link-
<a [routerLink]="['/Records', Member.Name]" ><td> {{Member.Name}} <td></a> 
Get Value
@Component({ 
    ... 
}) 
export class RecordsComponent implements OnInit { 

    constructor(private _route: ActivatedRoute) { } 

    ngOnInit(){ 
     this._route.params.subscribe((params) => { 
     var recordName = params["name"]; 
     //load record data 
    }); 
} 
+1

Was ist der Import, die ich brauche, um in der Lage zu verwenden OnInit zu implementieren? – MattInTheHat

+0

Importieren Sie {OnInit} von '@ angular/core'; –

+1

Ich habe OnInit korrekt implementiert und erhalte keinen Fehler mehr. Ich erhalte jedoch einen weiteren Fehler, der besagt, dass der Name ngOnInit nicht gefunden werden kann. – MattInTheHat

3

definieren Sie Ihre Route wie folgt aus:

{ path: 'Records/:id', component: xxx } 

deklarativ:

<a [routerLink]="['/Records', Member.name]">{{ Member.name }}</a> 

programmatisch:

goToMemberDetails(name) { 
    this.router.navigate(['/Records', name]); 
} 
Verwandte Themen