8

Angular 2 beta.0 の使用

私はそのようなコンポーネント構造を持っています

App (Has RouteConfig)
 -> List 
 | -> ListItem (Want to use RouterLink from here)

これにより、エラーが発生します。Component "List" has no route config.

だから私はそのようにコンポーネントにRouteConfigを置きListます...

@RouteConfig([
  {path: '/:id', name: 'Details', component: Detail}
])

しかし、角度のようなエラーが発生しますError: Child routes are not allowed for "/list". Use "..." on the parent's route path.

そのルート構成の /list パスの前後にこれらの 3 つのドットを追加しようとしましたが、成功しませんでした。

ルーターに関するドキュメントは非常に軽く、これが ui-router に基づいていることはわかっていますが、ネストされたルートを追加するための並列が表示されません。

4

2 に答える 2

19

親コンポーネントでは、次のように使用できます。

@RouteConfig([
  {path: '/', component: HomeComponent, as: 'Home'},
  {path: '/list/...', component: ListComponent, as: 'List'}
])

次に、 でListComponent、子ルートを定義します。

@RouteConfig([
  { path: '/:id', component: ListItem, as: 'ListItem' }
])

にもあることを確認しListComponentてください<router-outlet></router-outlet>..

于 2015-12-29T09:25:54.917 に答える
0

あなたがやろうとしていることが、1 つの子コンポーネントからrouterLinkを使用して、実際に親の構成済みルートの 1 つに移動することである場合は、 RouterConfigを子に配置する必要はありません。ルートを確認するだけで済みます。親で正しく構成されてから、子のデコレータ内の子のディレクティブ プロパティにROUTER_DIRECTIVES定数を追加します。

次のようになります。

親:

import { ROUTER_PROVIDERS, RouteConfig, ROUTER_DIRECTIVES } from 'angular2/router';
        :
    (some more imports)
        :
@Component({
        :
    directives: [ROUTER_DIRECTIVES],
    providers: [ROUTER_PROVIDERS],
        :
})

@RouteConfig([
  {path: '/:id', name: 'Details', component: Detail}
])

子:

import { ROUTER_DIRECTIVES } from 'angular2/router';
    :
    :
@Component({
    :
    directives: [ROUTER_DIRECTIVES],
    :
})

また、配列の最初のパラメーターとしてユーザーを送信するルートを指定してrouterLinkを正しく構成することを忘れないでください。次に、送信したいパラメーターを、指定した名前と同じ名前を使用してターゲットルートに追加します。 RouteConfigで、次のようにします。

<a [routerLink]="['Details', { id: product.productId }]"> Details link </a>
于 2016-08-12T20:39:57.940 に答える