微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

angular – 如何使用downgradeModule()使用ui-router hybrid来boostrap app

我正在使用“ui-router”混合( https://github.com/ui-router/angular-hybrid)引导“经典”方式.

我们遇到了“悬停”和数据网格中明显的其他事件的性能问题.
我们认为这是由于此处描述的两个版本之间的变化检测重叠/倍增.

https://pr18487-aedf0aa.ngbuilds.io/guide/upgrade-performance

我试图使用上面文档中描述的downgradeModule()bootstraping方法解决性能问题,但一直无法解决.

不能有Angular模块bootstrap,但没有错误.
我就是这样做的. “联系人”按钮(Angular模块)不执行任何操作.

https://stackblitz.com/edit/github-ypge8f-jmshp3

我还试图直接引导“联系人”角度模块,(“应用程序”一个懒惰加载“联系人”并认为这可能是一个问题)但结果是相同的.
这个问题也发布在here

解决方法

经过长时间的斗争,我想我终于明白了.由于所有使用downgradeModule的Angular混合示例都使用内置路由器,因此ui-router使得处理这个问题变得更加困难.
更新了代码以使其工作:
  https://stackblitz.com/edit/github-ypge8f-jmshp3
技巧是:

> Angular bootstrap模块需要一个“UIRouter”类型的参数
构造函数,否则它不会引导其状态:

export class AppModule {
           构造函数(私有路由器:UIRouter){
           //构造函数中需要“路由器”来引导角状态
    }

> urlService必须在bootstrap之前停止并在之后重新启动,
比如常规的混合例子
>重新启动urlService
发生在“setTimeout”调用中(无法找到更好的挂钩方式)
这个动作)允许Angular状态在重新加载时引导
带有来自其中一个州的网址的网页.

setTimeout(()=> {            // setTimeout需要允许角度路由在刷新后初始化        urlService.listen();        urlService.sync();    });

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐