[英]Angular2 RouteParams not getting parameter
我在從Angular2中的路由獲取參數時遇到問題。 在app.component.ts
我正在定義@RouterConfig
:
@RouteConfig([
...
{ path: '/companies', component: CompaniesListComponent, name: 'Companies' },
{ path: '/events/:nameId', component: EventsListComponent, name: 'Events'}
])
在CompaniesListComponent
的模板內部,我具有以下[routerLink]
:
<a [routerLink]="['/Events', { 'nameId': company.nameId }]" class="btn btn-success col-md-offset-4">Show Events</a>
當我將鼠標懸停在上面的鏈接上時,它清楚地表明我正確設置了company.nameId
,並且該URL看起來像: /events/cssmelbourne
,其中cssmelbourne
是nameId
。 當我單擊鏈接時,由於EventsListComponent
所以未加載nameId is not defined
。 我試圖通過以下方式獲取nameId
參數:
nameId: string = "";
constructor(private routeParams: RouteParams, private http: Http) {
this.nameId = routeParams.get('nameId');
}
我也嘗試過使用this.nameId = routeParams.params['nameId'];
但沒有成功。
最終,錯誤發生在EventsListComponent
的console.log
語句內。 我忘了把this.
在變量之前。 因此,在進行以下操作之前:
export class EventsListComponent {
nameId: string = "";
constructor(private routeParams: RouteParams, private http: Http) {
this.nameId = routeParams.params['nameId'];
console.log("nameId: " + nameId);
}
}
但是應該是:
export class EventsListComponent {
nameId: string = "";
constructor(private routeParams: RouteParams, private http: Http) {
this.nameId = routeParams.params['nameId'];
console.log("nameId: " + this.nameId);
}
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.