#angular
#angular
Вопрос:
Я пытаюсь обновить наше приложение до angular 2 RC7 с помощью маршрутизатора 3.0.0.rc-3 с RC5. Но я получаю следующие ошибки в дочерних файлах маршрутов.
ERROR in [default] C:/src/app/routes/childroute1/child-routes-one.routes.ts:31:8
Type '{ path: string; component: typeof childRouteOne; data: { displayName: string; }; childre...' is not assignable to type 'Route[]'.
Type '{ path: string; component: typeof childRouteOne; data: { displayName: string; }; childre...' is not assignable to type 'Route'.
Types of property 'children' are incompatible.
Type '({ path: string; redirectTo: string; terminal: boolean; } | { path: string; component: typeof fea...' is not assignable to type 'Route[]'.
Type '{ path: string; redirectTo: string; terminal: boolean; } | { path: string; component: typeof feas...' is not assignable to type 'Route'.
Type '{ path: string; redirectTo: string; terminal: boolean; }' is not assignable to type 'Route'.
Object literal may only specify known properties, and 'terminal' does not exist in type 'Route'.
Должен ли я что-либо изменять (добавлять или удалять) в дочерних маршрутах? Или проблема с какой-либо из зависимостей?
Когда я попытался с @angular/router : 3.0.0.rc-2
помощью and rxjs: 5.0.0-beta.6
, я не получил сообщение об ошибке.
дочерние маршруты-one.routes.ts
import {Routes, ActivatedRoute} from '@angular/router';
export const settingsRoute: Routes = [
{
path: 'ev/route-one/:Id/:usrId',
component: childRouteOne,
data: { displayName: 'Settings' },
children: [
{
path: '',
redirectTo: 'home',
terminal: true
},
{ path: 'home', component: feature-home, data: { displayName: 'Home' } },
{ path: 'notes/notes-settings/:Id', component: notesSettings, data: { displayName: 'Notifications' } }
]
}
];
@NgModule импортирует:
imports: [ BrowserModule, RouterModule, CommonModule, FormsModule, ReactiveFormsModule, HttpModule, routing, RouterModule.forChild(settingsRoute) ],
Комментарии:
1. показать код маршрутизации.
2. Пожалуйста, опубликуйте больше кода.
@NgModule()
, маршруты, …3. Angular 2 Final был выпущен почти месяц назад. Я бы настоятельно рекомендовал обновить. Руководство по маршрутизатору: angular.io/docs/ts/latest/guide/router.html
4. Добавлен код маршрутизации и NgModule в исходном вопросе
5.
terminal
это больше не допустимый вариант, попробуйте удалить его и посмотреть, будет ли он построен
Ответ №1:
terminal
Свойство больше не поддерживается в новых маршрутизаторах. Уберите это, и все должно быть построено.
Ответ №2:
Удалите свойство терминала и попробуйте реализовать то, что показано здесь,
children: [
{
path: '',
redirectTo: 'home',
pathMatch: 'full'
},
...
]