2016-10-25 5 views
2

Visual Studio 2015 AspNetCoreプロジェクトでAngular 2.1.0を使用していて、遅延ロードされたモジュールでルーティングに問題があります。エラーは以下の通りである:私はAppModuleと呼ばれるブートストラップモジュールで{Home/Login}最初のログインページをロードしていますlazy load topic here に応じTour Of Heroes tutorialを踏襲し、それを適応しているAngular 2.1のルートに一致しません

core.umd.js:3257 EXCEPTION: Uncaught (in promise): Error: Cannot match any routes. URL Segment: 'Home/MyList' Error: Cannot match any routes. URL Segment: 'Home/MyList' at ApplyRedirects.noMatchError (http://localhost:31534/libraries/@angular/router/bundles/router.umd.js:769:20) at CatchSubscriber.eval [as selector] (http://localhost:31534/libraries/@angular/router/bundles/router.umd.js:747:33) at CatchSubscriber.error (http://localhost:31534/libraries/rxjs/operator/catch.js:52:31) at MapSubscriber.Subscriber._error (http://localhost:31534/libraries/rxjs/Subscriber.js:128:26) at MapSubscriber.Subscriber.error (http://localhost:31534/libraries/rxjs/Subscriber.js:102:18) at MapSubscriber.Subscriber._error (http://localhost:31534/libraries/rxjs/Subscriber.js:128:26) at MapSubscriber.Subscriber.error (http://localhost:31534/libraries/rxjs/Subscriber.js:102:18) at MapSubscriber.Subscriber._error (http://localhost:31534/libraries/rxjs/Subscriber.js:128:26) at MapSubscriber.Subscriber.error (http://localhost:31534/libraries/rxjs/Subscriber.js:102:18) at LastSubscriber.Subscriber._error (http://localhost:31534/libraries/rxjs/Subscriber.js:128:26)

。ログインをクリックすると、次のページMyList{Home/MyList}が表示され、MyModuleという機能モジュールに遅延ロードされます。

MyModule is based on the HeroModule from the second link above.

MyListページと関連する成分もMyListDetailページ/コンポーネント{Home/MyListDetail}を有するMyModule下の最初のページ/構成要素です。

私はなぜ私のルートが発見されていない?

let link = ['Home/MyList']; 
this.router.navigate(link); 

このコードを使用して、ボタンクリックで{Home/MyList}に移動しますかここで私はそれらをセットアップする方法です。

アプリ-routing.module.ts

import { NgModule }    from '@angular/core'; 
import { Routes, RouterModule } from '@angular/router'; 

export const routes: Routes = [ 
    { path: '', redirectTo: 'Home/Login', pathMatch: 'full'}, 
    { path: 'Home/MyList', loadChildren: 'scripts/My.Module#MyModule' } 

]; 

@NgModule({ 
    imports: [RouterModule.forRoot(routes)], 
    exports: [RouterModule] 
}) 
export class AppRoutingModule {} 

ログイン-routing.module.ts

import { NgModule }   from '@angular/core'; 
import { Router, RouterModule }  from '@angular/router'; 

import { LoginCmpnt } from './Login'; 

@NgModule({ 
    imports: [RouterModule.forChild([ 
    { path: 'Home/Login', component: LoginCmpnt} 
    ])], 
    exports: [RouterModule] 
}) 
export class LoginRoutingModule {} 

マイリスト-routing.module.ts

import { NgModule }   from '@angular/core'; 
import { Routes } from '@angular/router'; 
import { RouterModule }  from '@angular/router'; 
import { SharedModule } from './shared.module'; 
import { MyComponent } from './MyComponent'; 
import { MyListComponent } from './MyListComp'; 
import { MyListDetailComponent } from './MyListDetailComp'; 

const routes: Routes = [ 
    { path: '', 
    component: MyComponent, 
    children: [{ path: 'Home/MyList', component: MyListComponent }, 
     { path: 'Home/MyListDetail/:id', component: MyListDetailComponent }] 
    }]; 

@NgModule({ 
    imports: [RouterModule.forChild([routes]), SharedModule ], 
    exports: [RouterModule]}) 

export class MyListRoutingModule {} 

上記のMyList-routing.moduleには、MyComponentのパスにはどうすればよいですか? Home/MyList

EDIT

へのログイン方法のルートは、これでもログインクリックでパスの前にスラッシュと動作しません。

let link = ['/Home/MyList']; 
this.router.navigate(link); 
+0

あなたは 'let link = ['/ Home/MyList'];'( '/'を追加しましたか? –

+0

はい。それはどちらもうまくいかなかった。私のルートは、先行するスラッシュで設定されていません。私は、ログインボタンコードに追加したときにセットアップでスラッシュを追加しようとしました。 – user20358

+0

先行スラッシュでルートを設定してはいけませんが、兄弟ルートまたは子ルートに移動しない場合は、スラッシュルートにナビゲートするとき。 –

答えて

-1

レイジーロードされたモジュールは、このようなことで最も:

export class default MyModule{ 

} 

app.routingであなたが最も使用負荷チャイルド。

+1

私のために働かなかった.. – user20358

関連する問題