問題:自分のアプリケーションのルートを設定しています。私はhttps://localhost:4200/hero=idのような私のURLを持っていたいと思っています。ここでidはユーザーがHeroscomponentから選んだものになります。これは私のために働いていません。ルーティングの設定方法Angular4 router
私は以下のURLを試してみると、/ hero /:idという角度のドキュメントがあり、それは音素的に動作します。
https://localhost:4200/hero/:id
いくつかは、私にこの問題に対する解決策を提供していただけます。
これは以下
const appRoutes: Routes = [
{ path: 'hero', component: HeroesComponent },
{path: 'hero{=:id}', component: HeroDetailComponent},
{
path: 'home',
redirectTo: '/hero',
data: { title: 'Heroes List' }
},{
path: 'student',
component: AppTable
},{
path: 'video',
component: VideoTagComponent
},{ path: '',
redirectTo: '/hero',
pathMatch: 'full'
}
// { path: '**', component: PageNotFoundComponent }
];
私のルートの設定ファイルでは、私はパス=「/英雄=」+ ID
import { Component } from '@angular/core';
import { Router } from '@angular/router';
import {Hero} from './hero';
const HEROES: Hero[] = [
{ id: 11, name: 'Mr. Nice' },
{ id: 12, name: 'Narco' },
{ id: 13, name: 'Bombasto' },
{ id: 14, name: 'Celeritas' },
{ id: 15, name: 'Magneta' },
{ id: 16, name: 'RubberMan' },
{ id: 17, name: 'Dynama' },
{ id: 18, name: 'Dr IQ' },
{ id: 19, name: 'Magma' },
{ id: 20, name: 'Tornado' }
];
@Component({
selector: 'my-heroes',
templateUrl: './heroes.html',
styleUrls: ['./app.component.css']
})
export class HeroesComponent {
hero = HEROES;
path:string;
selectedHero: Hero;
constructor(private router: Router){}
onSelect(hero: Hero): void {
this.selectedHero = hero;
this.path = "/hero=" +this.selectedHero.id.toString();
this.router.navigate([this.path]);
}
// gotoDetail(): void {
// }
}
にルーティングしています私のHeroesComponentファイルですこれは、私はエラーですブラウザのコンソールに入る。代わりに{path: 'hero{=:id}', component: HeroDetailComponent},
使用{path: 'hero/:id', component: HeroDetailComponent},
または{path: 'hero/:id/detail', component: HeroDetailComponent},
の
core.es5.js:1020 ERROR Error: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'hero%3D13' Error: Cannot match any routes. URL Segment: 'hero%3D13'**strong text**
を使用してheroIdを取得することができます使用してルーティングidが "=" は必要条件でありますか? – JayDeeEss
はい@JayDeeEssそれは必要条件です。 – harsh