我有一个视图,使用服务加载一个项目列表。我总是只显示一个项目,并使用<< >>按钮在项目之间切换。
是否有方法可以在不触发 Angular 的路由系统的情况下更改浏览器地址栏中的地址并将记录添加到浏览器历史记录中?
我知道如果我使用:
location.go('users/3');
它将执行上述操作,但也会触发Angular的路由系统,进而再次调用我的服务。
编辑:
看起来像是location的函数。
location.replaceState('users/3');
这个功能接近我所想要的 - 它可以在不触发任何Angular内部机制的情况下更改浏览器中的URL,但遗憾的是它替换了历史记录中最新的位置,而不是将新位置推送到顶部。
canReuse
https://dev59.com/AlwX5IYBdhLWcg3wlgTl 也可能有所帮助。https://angular.io/docs/ts/latest/api/router/CanReuse-interface.html - Günter Zöchbauer