我正在使用" ui-router"混合(https://github.com/ui-router/angular-hybrid)引导"经典"办法。
我们正在遇到性能问题" hover"以及数据网格中可见的其他事件。 我们认为这是由于此处描述的两个版本之间的变化检测重叠/倍增。
https://pr18487-aedf0aa.ngbuilds.io/guide/upgrade-performance
我正在尝试使用上面文档中描述的downgradeModule()bootstraping方法来解决性能问题,但一直无法解决。
不能使用Angular模块引导程序,但没有错误。 我就是这样做的。 “联系人”按钮(Angular模块)不执行任何操作。
https://stackblitz.com/edit/github-ypge8f-jmshp3
我还尝试直接引导"联系人" Angular模块,(" App"一个懒惰加载" Contacts"并认为这可能是个问题),但结果是一样的。 此问题也已发布here
答案 0 :(得分:6)
经过长时间的斗争,我想我终于明白了。由于所有使用downgradeModule的Angular混合示例都使用内置路由器,因此ui-router使得处理这个问题变得更加困难。 更新了代码以使其工作: https://stackblitz.com/edit/github-ypge8f-jmshp3 技巧是:
export class AppModule {
constructor(private router: UIRouter) {
// "router" needed in constructor to bootstrap angular states
}
urlService必须在bootstrap之前停止并在之后重新启动, 比如常规混合示例
重新启动urlService 发生在" setTimeout"打电话(找不到更好的挂钩方式 这个动作)允许Angular状态在重新加载时引导 带有来自其中一个州的网址的页面。
setTimeout(() => {
// setTimeout needed to allow angular routes to initialize after refresh
urlService.listen();
urlService.sync();
});