Подтвердить что ты не робот

Angular2 Router v3, перейдите на другой уровень: TypeError: Невозможно прочитать свойство '_routeConfig' из null

Я использую новый Router v3.0.0-alpha.3. Представьте, что мои маршруты выглядят так:

                              App
                              /\
                             /  \
                       Settings  Main
                          / \        
                         /   \      
                       User  Account

С точки зрения компонента User я хотел бы перейти к основному компоненту. Если я перехожу к любому компоненту на уровне настроек, он отлично работает, но когда я пытаюсь перейти на другой уровень, я получаю сообщение об ошибке:

EXCEPTION: Error: Uncaught (in promise): TypeError: Cannot read property '_routeConfig' of null

Я naviagate с помощью директивы routerLink:

[routerLink]="['/main']"           <- doesn't work
[routerLink]="['/settings']"       <- works
[routerLink]="['/settings/user']"  <- works

Это похоже на глобальную проблему. Я могу ориентироваться только на этом уровне. Любая идея, как я могу обойти это?

Мои маршруты переданы в bootstrap:

export const routes: RouterConfig = [
    ...MainRoutes,
    ...SettingsRoutes
];

export const APP_ROUTER_PROVIDERS = [
    provideRouter(routes)
];

main.routes.ts:

export const MainRoutes: RouterConfig = [{
    path: '/main',
    component: SettingsComponent
}];

settings.routes.ts:

export const SettingsRoutes: RouterConfig = [{
    path: '/settings',
    component: SettingsComponent,
    children: [{
        path: '/user',
        component: UserSettingsComponent,
        index: true
    }]
}];

Edit:

Поскольку данная ссылка в комментариях больше не работает, я предлагаю временное исправление. Ошибка все еще существует в версии alpha.7 версии маршрутизатора, но будет исправлена ​​здесь

Проблема заключается в файле router.js, функция GuardChecks.prototype.runCanDeactivate строка 309 (в роутере v.alpha.7):

var canDeactivate = curr._routeConfig ? curr._routeConfig.canDeactivate : null;

измените его на:

var canDeactivate = curr && curr._routeConfig ? curr._routeConfig.canDeactivate : null;

Пожалуйста, помните, что это следует рассматривать как временное исправление, не подходящее для автоматизированной производственной среды!

4b9b3361