gpt4 book ai didi

Angular2 - 在不触发路线的情况下更改位置

转载 作者:太空狗 更新时间:2023-10-29 19:31:25 25 4
gpt4 key购买 nike

我有一个使用服务加载项目列表的 View 。我总是只显示一个项目,使用 << >> 按钮在项目之间移动。

有什么方法可以在不触发 Angular 的路由系统的情况下更改浏览器地址栏中的地址并向浏览器历史记录添加记录?

我知道如果我使用:

location.go('users/3');

它会做上面提到的事情,但它也会触发 Angular 的路由系统,它又会再次调用我的服务。

编辑:

好像是location的函数

location.replaceState('users/3');

越来越接近我想做的事情了——它在浏览器中更改了 url 而没有触发任何 Angular 内部机制,不幸的是它替换了历史记录中的最新位置,而不是将新位置推到顶部。

最佳答案

如果您不将服务添加到组件 provider: 列表中,您将不会获得该服务的新实例。仅通过在 bootstrap(AppComponent, [MyGlobalService]) 中注册来使服务成为全局服务。

实现 CanReuse另见 Angular 2: Swapping between different components without destroying them可能有助于防止在重复使用同一路由时重新初始化组件。

关于Angular2 - 在不触发路线的情况下更改位置,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/34876663/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com