0

angular 5を使用してrouteparamsを介して別のページにオブジェクトを送信したいのですが、機能していません。

私が以下に書いたコードを見てください:

<button mat-raised-button [routerLink]="['./view-class-timing-set',newObject]">New</button>

オブジェクトの TS コード:

newObject = {
 id: 123
}

モジュールコード:

{
path: 'ng2/ClassTimingSet',
component: ClassTimingSetComponent,

children: [
  { path: '', component: NewClassTimingSetComponent},
  { path: 'view-class-timing-set/:newClassTimingObj', component: ViewClassTimingSetComponent}
]

}、

ページがルーティングされた後にオブジェクトを表示するための TS CODE:

 ngOnInit() {
this.route.params.subscribe(
  params =>{
    console.log('THis is the object that I got');
    console.log(params);
  }

)

}

ただし、ページはルーティングされていません。

 Cannot match any routes. URL Segment: 'ng2/ClassTimingSet/view-class-timing-set;id=123'
4

1 に答える 1

0

代わりに使用することをお勧めしますqueryParams。これは URL で有効なオブジェクトではありません。オブジェクトを通常の URL パラメーターとして渡すことは、通常はお勧めできません。URLを作るだけ

{ path: 'view-class-timing-set', component: ViewClassTimingSetComponent}

(ルートがクエリ パラメータを持つことができることを示す必要はありません。これらは通常任意です)

次に、コンポーネントで:

this.route.queryParams.subscribe(
  params => {
      console.log('THis is the object that I got');
       console.log(params);
  }

そして、次のような URL にアクセスします。ng2/ClassTimingSet/view-class-timing-set?id=123&key1=value1&key2=value2

于 2018-01-11T08:43:06.380 に答える