構造全体を整理しようとしている間に、実際のビジネスロジックに飛び込むことができるので、次の問題に遭遇しました。Angular2で子ルートを設定する際の問題
私はそれが定義されたルートだと、メインコントローラがあります:あなたが見ることができるようにapp-header
ディレクティブがあり
<div class="container-fluid">
<div class="row">
<div class="col-md-12">
<app-header></app-header>
<secure-outlet signin="Login" unauthorized="AccessDenied"></secure-outlet>
</div>
</div>
</div>
次のようにそれが見え含ま:
@Component({
selector: 'priz-app',
moduleId: module.id,
templateUrl: './app.component.html',
directives: [ROUTER_DIRECTIVES, SecureRouterOutlet, AppHeader],
providers: [AuthenticationService]
})
@RouteConfig([
{ path: '/home', name: 'Home', component: HomeComponent, useAsDefault: true },
{ path: '/login', name: 'Login', component: LoginComponent },
{ path: '/logout', name: 'Logout', component: LogoutComponent },
{ path: '/rrm/...', name: 'Rrm', component: RrmMainComponent }
])
とそのコントローラのテンプレートを次のとおりです。
@Component({
selector: 'app-header',
moduleId: module.id,
templateUrl: './app-header.component.html',
directives: [Collapse, DROPDOWN_DIRECTIVES, ROUTER_DIRECTIVES, TrackScrollDirective]
})
そして、その中のどこかのテンプレート:
RrmMainComponentはこのようになります<a [routerLink]="['RrmMain']">RRM <span class="sr-only">(current)</span></a>
:
@Component({
selector: 'rrm-main',
moduleId: module.id,
templateUrl: './rrm-main.component.html',
directives: [ROUTER_DIRECTIVES, SecureRouterOutlet]
})
@RouteConfig([
{path: '/', name: 'RrmMain', component: RrmMainComponent, useAsDefault: true, data: { roles:['ROLE_RRM_USER', 'ROLE_RRM_USER'] }}
])
すべて良いが、私は例外を取得しています:
例外:ルーターのインスタンス化中にエラーを! (RouterLink - > ルーター)。 angular2.js:23887例外: ルータのインスタンス化中にエラーが発生しました。 (RouterLink - > Router)。 angular2.js:23877:9
オリジナルの例外:「/」には子供のルートは許可されません。親のルートパス で "..."を使用してください。
私は考えることができるものを試しましたが、私はこの時点で固執しています。単にまだ十分な経験がありません。
ありがとう、 アレックス。
'bootstrap()'に 'ROUTER_PROVIDERS'を追加しましたか? ''を追加しましたか?あなたは再生するためのプランカを作成できますか? –
はい、私は絶対にしました。私が単一レベルルートを持っているなら、それはすべて働いています。プランカに関しては、最善を尽くすつもりです。すでにかなりのコードです。 –
問題を再現するのに必要なだけ(最小限の再現可能な例)、Plunkerにすべてのコードを追加しないでください。追加するコードが多いほど、誰も問題をデバッグしようとする可能性は低くなります。 –