Я использую Angular 2.1.0 в проекте AspNetCore Visual Studio 2015, и у меня возникла проблема с маршрутизацией в моих ленивых загружаемых модулях. Ошибка выглядит следующим образом:
core.umd.js: 3257 ИСКЛЮЧЕНИЕ: Не перехвачено (в обещании): Ошибка: невозможно сопоставить ни один маршрут. Сегмент URL-адреса: «Домашняя страница / Мой список» Ошибка: не удается сопоставить ни один маршрут. Сегмент URL: 'Home / MyList' в ApplyRedirects.noMatchError (http://localhost:31534/libraries/@angular/router/bundles/router.umd.js:769:20) на CatchSubscriber.eval [как селектор] (http://localhost:31534/libraries/@angular/router/bundles/router.umd.js:747:33) в CatchSubscriber.error (http://localhost:31534/libraries/rxjs/operator/catch.js:52:31) на MapSubscriber.Subscriber._error (http://localhost:31534/libraries/rxjs/Subscriber.js:128:26) на MapSubscriber.Subscriber.error (http://localhost:31534/libraries/rxjs/Subscriber.js:102:18) на MapSubscriber.Subscriber._error (http://localhost:31534/libraries/rxjs/Subscriber.js:128:26) на MapSubscriber.Subscriber.error (http://localhost:31534/библиотеки/rxjs/Subscriber.js:102:18) на MapSubscriber.Subscriber._error (http://localhost:31534/libraries/rxjs/Subscriber.js:128:26) на MapSubscriber.Subscriber.error (http://localhost:31534/libraries/rxjs/Subscriber.js:102:18) на LastSubscriber.Subscriber._error (http://localhost:31534/libraries/rxjs/Subscriber.js:128:26)
Я следил за учебным курсом по героям и адаптировал его в соответствии с здесь ленивая загрузка темы Я сначала загружаю страницу входа {Home/Login}
в модуль начальной загрузки под названием AppModule
. При нажатии кнопки входа в систему я хочу показать следующую страницу MyList
, {Home/MyList}
, которая лениво загружается в функциональный модуль с именем MyModule
.
MyModule
основан наHeroModule
из второй ссылки выше.
MyList
страница и связанный с ней компонент - это первая страница / компонент в MyModule
, который также имеет MyListDetail
страницу / компонент {Home/MyListDetail}
.
Я перехожу к {Home/MyList}
нажатием кнопки, используя этот код
let link = ['Home/MyList'];
this.router.navigate(link);
Почему мои маршруты не обнаруживаются? Вот как я их настраиваю.
app-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 {}
login-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 {}
MyList-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
ИЗМЕНИТЬ
Даже это с косой чертой перед путем в щелчке входа в систему не работает.
let link = ['/Home/MyList'];
this.router.navigate(link);
let link = ['/Home/MyList'];
(добавлено/
)? - person Günter Zöchbauer   schedule 25.10.2016/
можно не указывать. - person Günter Zöchbauer   schedule 25.10.2016