2017-09-25 13 views
0

list-profile html docの中で提供されているリンクを一度押して変数を送信します。現在のコードは機能せず、クラッシュします。必要に応じて詳細を提供することができます。routerLinkを介して新しいコンポーネントにパラメータを渡します。

リスト-profile.component.html

<div class="col col-sm-4 col-sm-offset-4"> 
    <ul id="list_of_users"> 
     <li class="list-group-item list-group-item-action" *ngFor="let user of users"><a [routerLink]="['/profile', user.id]" routerLinkActive="active" (click)="testFunc(user.id)">{{user.name}}</a></li> 
    </ul> 
</div> 

app.module.ts

const appRoutes: Routes = [ 
{ path: 'addProfile', component: AddProfileComponent }, 
{ path: 'listProfiles', component: ListProfilesComponent}, 
{ path: 'profile:id', component: ProfileComponent} 
]; 

答えて

2

変更値にアクセスするには、次の

const appRoutes: Routes = [ 
    { path: 'addProfile', component: AddProfileComponent }, 
    { path: 'listProfiles', component: ListProfilesComponent}, 
    { path: 'profile/:id', component: ProfileComponent} // change to this 
    ]; 

Updateへのルート

import {ActivatedRoute} from '@angular/router'; 
... 

constructor(private route:ActivatedRoute){} 


ngOnInit(){ 
    this.route.params.subscribe(params => 
     console.log(params['id']; 
    ) 
} 

注 - 角度(V4)を使用している場合はparamMapするのparamを変更してください

+0

それはもうクラッシュしません!しかし、どこで変数を取得するのですか?コンストラクタの中に? – Amar

+0

コンストラクタまたはngOnInit内部 –

+0

コード例を提供できますか?なぜなら、コンポーネント 'atm'は、 'ProfileComponent'クラスが 'OnInit'インターフェースを正しく実装していないからです。プロパティ 'ngOnInit'のタイプは実装できません。型 '(id:string)=> void'は型 '()=> voidの代入不可能です。 – Amar

関連する問題