簡體   English   中英

Angular2 RouteParams未獲取參數

[英]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 ,其中cssmelbournenameId 當我單擊鏈接時,由於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']; 但沒有成功。

最終,錯誤發生在EventsListComponentconsole.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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM