首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >ui路由器/角度混合路由在初始加载/重新加载时无法识别

ui路由器/角度混合路由在初始加载/重新加载时无法识别
EN

Stack Overflow用户
提问于 2018-08-13 23:19:07
回答 1查看 905关注 0票数 0

在初始加载/重新加载时,似乎无法识别使用@ui-router/angular-hybrid在ng2+模块中注册的路由。如果例如通过键入url来导航,则相同的路由正在工作。

我关注了来自@ui-router/angular-hybrid的官方升级文档

以下是ng2+ AppModule代码:

代码语言:javascript
运行
复制
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 });
  }
}

和引导逻辑:

代码语言:javascript
运行
复制
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);
      });
  })

附注:现有的angularjs路由工作正常,问题出在ng2+模块中注册的路由。

感谢您的帮助,谢谢^^

EN

回答 1

Stack Overflow用户

发布于 2018-09-20 08:02:15

我设法自己解决了这个问题,并想把答案贴出来,以防有人遇到类似的问题。原来我们在旧的angularjs代码中有一个奇怪的逻辑,它延迟了$urlRouter url同步。

代码语言:javascript
运行
复制
$urlRouterProvider.deferIntercept();
...
$urlRouter.sync();

一旦删除,上述问题就会消失。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/51825598

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档