Angular2路由,重页面,模拟导航

Angular2 Routing, heavy page, simulate navigation

我需要一些关于路由的帮助。只要我在不同的路线之间移动,它的大部分工作正常,包括浏览器中的后退和前进按钮。但是我有一个重量级组件(youtube 播放器)(路由),我只想更改 /route/:id 上的内容并避免重新初始化组件。所以我使用 Location.go(:id) 来修复 url。

但是现在浏览器中的后退和前进按钮无法正常工作。我想我可以使用 Location.subscribe 挂钩浏览器事件,更改内容或导航并继续。但是.. 后退和前进按钮不起作用。如果我返回(到location.go())url,就没有前进了。我不能回去两次。

希望有人能在这里给我攻略...我在兜圈子。 似乎 Location.go(:id) 只是不关心业务。

只需在您的重量级组件上实现 CanReuse 和 return true,然后组件实例将被保留并在您返回时重新添加。