UI-路由器混合:在触发具有NG2组件的NG1状态之前,NG2状态不起作用

斯蒂芬·诺伯格

我有一个带有UI-router的大型angularjs 1.7.4应用,该应用具有HTML5模式下的多个入口点。

(该项目使用babel 7.6来编译typescript和corejs3 polyfills,所以我没有使用angular-cli)。

我正在尝试将入口点之一迁移到混合应用程序(Angular 8.2.13,@ uirouter / angular-hybrid 9.0.0)。

我也跟着迁移指南@ https://angular.io和引导在https://github.com/ui-router/angular-hybrid和一切似乎除了在角状态定义是工作。它们仅在触发带有Angular组件的angularjs状态后才能工作。

在此之前,尝试使用NG2状态时,控制台中没有任何内容(已为ui-router启用了跟踪)。

我已经被这个问题困扰了好几天了,我没有主意...

ng1hello-带有角分量的ng1状态ng2hello-带有角分量的角状态ng1hi-ng1带有角分量的状态ng2hi-ng2带有角分量的状态

情况1:

  1. 重新加载“ /”:确定。
  2. 单击ui-sref以获取“ ng1hello”。
  3. 单击ui-sref以获取“ ng2hello”。
  4. 单击ui-sref以获取“ ng2hi”。

情况2:

  1. 重新加载“ /”:确定。
  2. 单击ui-sref以获取“ ng2hello”。不好
  3. 单击ui-sref以获取“ ng2hi”。不好
  4. 单击ui-sref以获取“ ng1hello”。
  5. 单击ui-sref以获取“ ng2hello”。
  6. 单击ui-sref以获取“ ng2hi”。

情况3:

  1. 重新加载“ / ng1hello”,确定。

情况4:

  1. 在“ / ng2hello”上重新加载不是很好。

编辑:我在这里在Stackblitz中复制了问题:https : //angular-hybrid-issue.stackblitz.io/https://stackblitz.com/edit/angular-hybrid-issue

斯蒂芬·诺伯格

我显然在使用错误的方法来获取main.ts中的UrlService(角度上下文)

是:

    import {getUIRouter} from "@uirouter/angular-hybrid";
    const urlService: UrlService = getUIRouter(platformRef.injector).urlService;

应该是:

const urlService: UrlService = platformRef.injector.get(UrlService); 

https://github.com/ui-router/angular-hybrid/issues/368

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章