UI-router hybrid:在触发具有 NG2 组件的 NG1 状态之前,NG2 状态不工作
UI-router hybrid: NG2 states not working before an NG1 state with an NG2 component is triggered
我有一个大型 angularjs 1.7.4 应用程序,其中 UI-router 在 HTML5 模式下具有多个入口点。
(该项目使用babel 7.6编译typescript和corejs3 polyfills,所以我没有使用angular-cli)。
我正在尝试将入口点之一迁移到混合应用程序(Angular 8.2.13,@uirouter/angular-hybrid 9.0.0)。
我关注了 guide @ https://angular.io and the guide at https://github.com/ui-router/angular-hybrid 的迁移,除了 Angular 中的状态定义外,一切似乎都正常。它们仅在 angularjs 状态与 Angular 组件被触发后才工作。
在此之前尝试使用 NG2 状态时,控制台中没有任何内容(为 ui-路由器启用了跟踪)。
我已经被困在这个问题上好几天了,我没有想法...
ng1hello - 带有 angular 组件的 ng1 状态
ng2hello - angular 状态与 angular 组件
ng1hi - 具有 angular 组件的 ng1 状态
ng2hi - ng2 状态 angular 分量
案例一:
- 重新加载“/”:确定。
- 单击 ui-sref for "ng1hello"。好的
- 单击 ui-sref for "ng2hello"。好的
- 单击 ui-sref for "ng2hi"。好的
案例二:
- 重新加载“/”:确定。
- 单击 ui-sref for "ng2hello"。不正常
- 单击 ui-sref for "ng2hi"。不正常
- 单击 ui-sref for "ng1hello"。好的
- 单击 ui-sref for "ng2hello"。好的
- 单击 ui-sref for "ng2hi"。好的
案例三:
- 在“/ng1hello”上重新加载确定。
案例 4:
- 重新加载“/ng2hello”不正常。
编辑:
我在这里重现了 Stackblitz 中的问题:
https://angular-hybrid-issue.stackblitz.io/
https://stackblitz.com/edit/angular-hybrid-issue
我显然使用了错误的方法来获取 main.ts 中的 UrlService(Angular 上下文)
原为:
import {getUIRouter} from "@uirouter/angular-hybrid";
const urlService: UrlService = getUIRouter(platformRef.injector).urlService;
应该是:
const urlService: UrlService = platformRef.injector.get(UrlService);
我有一个大型 angularjs 1.7.4 应用程序,其中 UI-router 在 HTML5 模式下具有多个入口点。
(该项目使用babel 7.6编译typescript和corejs3 polyfills,所以我没有使用angular-cli)。
我正在尝试将入口点之一迁移到混合应用程序(Angular 8.2.13,@uirouter/angular-hybrid 9.0.0)。
我关注了 guide @ https://angular.io and the guide at https://github.com/ui-router/angular-hybrid 的迁移,除了 Angular 中的状态定义外,一切似乎都正常。它们仅在 angularjs 状态与 Angular 组件被触发后才工作。
在此之前尝试使用 NG2 状态时,控制台中没有任何内容(为 ui-路由器启用了跟踪)。
我已经被困在这个问题上好几天了,我没有想法...
ng1hello - 带有 angular 组件的 ng1 状态 ng2hello - angular 状态与 angular 组件 ng1hi - 具有 angular 组件的 ng1 状态 ng2hi - ng2 状态 angular 分量
案例一:
- 重新加载“/”:确定。
- 单击 ui-sref for "ng1hello"。好的
- 单击 ui-sref for "ng2hello"。好的
- 单击 ui-sref for "ng2hi"。好的
案例二:
- 重新加载“/”:确定。
- 单击 ui-sref for "ng2hello"。不正常
- 单击 ui-sref for "ng2hi"。不正常
- 单击 ui-sref for "ng1hello"。好的
- 单击 ui-sref for "ng2hello"。好的
- 单击 ui-sref for "ng2hi"。好的
案例三:
- 在“/ng1hello”上重新加载确定。
案例 4:
- 重新加载“/ng2hello”不正常。
编辑: 我在这里重现了 Stackblitz 中的问题: https://angular-hybrid-issue.stackblitz.io/ https://stackblitz.com/edit/angular-hybrid-issue
我显然使用了错误的方法来获取 main.ts 中的 UrlService(Angular 上下文)
原为:
import {getUIRouter} from "@uirouter/angular-hybrid";
const urlService: UrlService = getUIRouter(platformRef.injector).urlService;
应该是:
const urlService: UrlService = platformRef.injector.get(UrlService);