2017-06-02 14 views
0

パラメータをこの形式のwww.domain.com?param=valueの1つのコンポーネントに渡そうとしていますが、角度はこのようなパラメータを送信し続けますwww.domain.com;param=value。なぜ;の代わりに?を置き換えますか?パラメータを角度2の伝統的な方法で渡す

これは私のルートconfにある:私は

this._router.navigate(['shops?id=id']); 

のようにそれを渡すと、私は未定義の経路エラーを取得した値

this._router.navigate(['shops', {id: id}]); 

を渡す方法

const router: Routes = [ 
    {path: '', redirectTo: '/shops', pathMatch: 'full'}, 
    {path: 'shops', component: ShopComponent, canActivate: [AuthManager]}, 
    {path: 'shop/new', component: NewShopComponent, canActivate: [AuthManager]}, 
    {path: 'shop/new/:id', component: NewShopComponent, canActivate: [AuthManager]}, 
    {path: 'login', component: LoginComponent}, 
    {path: 'register', component: RegisterComponent}, 
    {path: '**', component: ShopComponent} 
]; 

、これ。

答えて

0

角度は、パラメータの3種類が用意されています。

  • 必須クエリが

パラメータを使用してナビゲートするためのURLと構文の見た目が異なるパラメータ

  • オプションのパラメータ
  • パラメータどのタイプのパラメーターを使用するかによって異なります。

    "?"スタイルでは、クエリパラメータが必要です。

    クエリパラメータ:

    • は、ルート・パスの構成に含まれていません。したがって、クエリパラメータを使用する場合は、:idをパスに追加しないでください。

    ないでこの:

    {path: 'shop/new/:id', component: NewShopComponent, canActivate: [AuthManager]}, 
    

    なく、この:あなたはどのように上のより多くの情報が必要な場合

    this.router.navigate(['/shops'], 
        { 
        queryParams: { id: id } 
        } 
    ); 
    

    {path: 'shop/new', component: NewShopComponent, canActivate: [AuthManager]}, 
    

    次に、あなたは、このようなルートに移動しますルーティングを使用する...これをチェックしてください:https://app.pluralsight.com/library/courses/angular-routing/table-of-contents

  • +0

    私はこのように this.router.navigate([ '/ショップ']、 {queryParams:{ID:ID}} )を使用する場合、 私のルートは/店になります; id = "id" < - これは間違っていますが、私はこの結果になります:/ shops?id = "id" – user3613976

    +0

    プランナーを提供できますか? queryParamsを使用すると、探しているURLが/ shop?id = "id"になります。 – DeborahK

    関連する問題