私はangular2アプリケーション上で私のルートを設定しています:Angular2のルーティング設定(2つのパラメータを持つルート)
ので、app.routes.ts
上:
export const ROUTES: Routes = [{
path: '', redirectTo: 'login', pathMatch: 'full'
}, {
path: 'app', loadChildren:() => System.import('./layout/layout.module')
}, {
path: 'login', loadChildren:() => System.import('./login/login.module')
}, {
path: 'validate/:id/:token', loadChildren:() => System.import('./validate/validate.module')
}, {
path: 'error', component: ErrorComponent
}, {
path: '**', component: ErrorComponent
}
];
、私は2つの問題を上に向けています:私はhttp://localhost:3000
に行くとき
- は、
http://localhost:3000/Living%20User%20Platform#/login
にリダイレクトされます:このLiving%20User%20Platform#
がURLに追加された理由を私はかなり0123の代わりに、把握していません。 - ご覧のとおり、2つのパラメータ(
validate/:id/:token
)を設定しています。それでも、私はブラウザ上(http://localhost:3001/Living%20User%20Platform#/validate?id=sdfsdf&token=sdfsdfを)このURLを足すだとき、それはルートをエラーに行く:
ValidateModule.ts
:
export const routes = [
{path: '', component: Validate, pathMatch: 'full'}
];
@NgModule({
declarations: [
// Components/Directives/ Pipes
Validate
],
imports: [
CommonModule,
FormsModule,
RouterModule.forChild(routes),
]
})
export default class ValidateModule {
static routes = routes;
}
任意のアイデア?
ありがとう@ ranakrunal9。私はそれを持っている。最後の問題(パラメータ付きのルート)によると、 '' validate?id = x&token = t'のような '' path "'パラメータの代わりに、クエリパラメータでurlを受け入れるためにルートパスを設定する方法がありますか? – Jordi
'NavigationExtras'を使うと、あるコンポーネントから別のコンポーネントにリダイレクトするときに、パラメータを' queryParams'として渡すことができます。パラメタをルーティングパラメタとして宣言することなく直接パラメタをパラメタとして送ることができます。コンポーネントではurlから 'queryParams'を得るために' ActivatedRoute'を使う必要があります。 https://angular.io/docs/ts/latest/guide/router.htmlを確認してください – ranakrunal9
ありがとう@ ranakrunal9。私は 'http:// localhost:3000/validate?id = i&token = t'に行くと、' component + template'のバリデーションが表示されますが、ブラウザのURLで検出しました'http:// localhost:3000/login'に行きます。私は子ルートを定義するモジュールコードを投稿しました( '' ''のみ)。何か間違えている? – Jordi