我在涉及参数的路由方面遇到问题。当我尝试使用浏览器的后退按钮返回时,上一个组件的ngonit不会启动。
使用角度教程再现错误的步骤:
- 从下载教程https://angular.io/tutorial并运行
npm install
- 使用命令
ng build --prod --build-optimizer
或ng build --prod
构建应用程序 - 将上一步生成的静态文件上传到nginx或apache服务器,相应的配置文件在angular文档中具有推荐的代码行。https://angular.io/guide/deployment
- 单击仪表板中排名靠前的英雄之一
- 单击浏览器的后退按钮
通过执行这些步骤,您将看到面板中没有加载顶级英雄,这与我的应用程序遇到的问题完全相同。这是因为当使用返回按钮返回时,ngOnInit不会被调用。
需要注意的几点是:
此问题仅在使用Firefox、Chrome或Opera时出现
使用开发模式ng serve
时不会出现此问题
我更新到angular 7,但仍然有同样的问题。
有什么办法可以解决这个问题吗?我在angular的回购问题上没有发现任何关于这一点的信息。
你应该找到这样的东西:
this._router.events.subscribe(event => {
// ... yourcode
});