ui-router/angular-hybrid - маршрут не распознан при начальной загрузке / перезагрузке
Кажется, что маршруты, которые зарегистрированы в модуле ng2+ с использованием @ui-router/angular-hybrid
не распознаются при начальной загрузке / перезагрузке. Тот же маршрут работает, если, например, навигация осуществляется путем ввода URL-адреса.
Я следовал официальным документам по обновлению от @ ui-router / angular-hybrid
Вот это ng2+ AppModule
код:
const states: NgHybridStateDeclaration[] = [
{
name: 'x',
url: '/x',
component: XComponent
}
];
enableProdMode();
@NgModule({
imports: [
BrowserModule,
UpgradeModule,
UIRouterUpgradeModule.forRoot({states: states}),
ComponentsModule,
DirectivesModule
],
declarations: [AppComponent],
exports: [],
entryComponents: [],
providers: [],
bootstrap: []
})
export class Ng2AppModule {
constructor(
@Inject(forwardRef(() => UpgradeModule)) private upgrade: UpgradeModule,
@Inject(forwardRef(() => Config)) private config: Config
) {}
ngDoBootstrap() {
this.upgrade.bootstrap(document as any, ['app'], { strictDi: true });
}
}
И логика начальной загрузки:
AppModule.config([
'$urlServiceProvider',
($urlService: UrlService) => $urlService.deferIntercept()
]);
getConfig()
.then((config: Config) => {
console.log('CONFIG::::', config);
AppModule.constant('config', config);
setAngularLib(angular);
platformBrowserDynamic([
{
provide: Config,
useValue: config
}
])
.bootstrapModule(Ng2AppModule)
.then(platformRef => {
platformRef.injector.get<NgZone>(NgZone).run(() => {
const urlService = platformRef.injector.get(UIRouter).urlService;
urlService.listen();
urlService.sync();
});
downgradeSharedComponents(AppModule);
});
})
PS Существующие маршруты angularjs работают правильно, проблема в маршрутах, зарегистрированных в модуле ng2+.
Любая помощь приветствуется, спасибо ^^
1 ответ
Удалось выяснить это самостоятельно и хотел опубликовать ответ на случай, если кто-нибудь столкнется с подобной проблемой. Оказалось, у нас была странная логика в нашем старом коде angularjs, который откладывал $urlRouter
синхронизация URL:
$urlRouterProvider.deferIntercept();
...
$urlRouter.sync();
После удаления проблема, описанная выше, исчезла.