Ionic 如何在Angular 13+中更新URL但不触发导航

ha5z0ras  于 2023-03-21  发布在  Ionic
关注(0)|答案(1)|浏览(170)

我们有一个library.page.html。在HTMl的左侧有一个列表,您可以在其中选择一本书。当页面呈现时,只有这个列表,并且当我选择一本书时,我希望将URL更新为/books/123,但不触发导航本身。在页面本身右侧有一些代码呈现在 *ngIf=bookselected上|异步
正如预期的使用Angular 路由器导航它试图匹配到一个路径,并导航到它。我们希望这样做,所以当你复制链接,并发送给另一个人,它会加载图书页与图书123加载在细节窗格。
我们的页面包含1个outlet(ionic),我可以通过在页面本身使用参数来解决这个问题(url将变成books?id=123),当我导航到这个页面时,我可以使用this.router.navigate(['books',123])。
我记得从旧的Angular 天,你可以只定制的网址通过navController,但这似乎不赞成(因为网址做“更多”不仅仅是导航”现在的Angular )。
用“paths”来调整url是不是不太合适,我应该在页面本身使用queryParams吗?或者我在文档中遗漏了什么。

lzfw57am

lzfw57am1#

您可以使用以下命令:

import { Location } from '@angular/common';

constructor(private location: Location) {}

changeUrl(path: string): void {
  this.location.go(path);
}

相关问题