https://angular.io/api/router/RouterLink很好地概述了如何创建链接,将用户带到Angular4中的不同路由,但是我找不到如何以编程方式执行相同的操作,而需要用户单击链接

推荐答案

导航球

routerLink指令的用法如下:

<a [routerLink]="/inbox/33/messages/44">Open Message 44</a>

只是使用router及其导航球方法对命令式导航进行包装:

router.导航球('/inbox/33/messages/44')

从消息来源可以看出:

export class RouterLink {
  ...

  @HostListener('click')
  onClick(): boolean {
    ...
    this.router.导航球(this.urlTree, extras);
    return true;
  }

因此,无论您需要将用户导航到何处,只需输入router并使用导航球方法:

class MyComponent {
   constructor(router: Router) {
      this.router.导航球(...);
   }
}

导航

路由上还有另一种方法可以使用-导航:

router.导航(['/inbox/33/messages/44'])

两者的区别

使用router.导航球类似于更改位置栏

为了清楚地看到差异,假设当前的URL是

使用此URL,呼叫

the official docs分钟内阅读更多内容.

Angular相关问答推荐

NG构建后多余的国旗

Angular 类型的表单不能分配给分部类型

Primeng:安装ANGLE 16.2.0版本

Angular 16 Auth Guard在具有0的服务时给出Null Injector错误;httpclient;被注入

根据环境变量动态加载Angular templateUrl

如果Angular 数据为空,如何设置N/A

Angular 14 类型表单 - 数字控件的初始值

将 injectiontoken 用于 Angular 中的模块特定设置

如何将我的数组数据转换为逗号分隔的字符串

当访问令牌在 MSAL for Angular 中过期时如何重定向用户?

将数组传递给 URLSearchParams,同时使用 http 调用获取请求

如何在 Angular Cli 中生成 .angular-cli.json 文件?

在同一个组件中使用 MatSort 的多个 mat-table

如何在 Angular 2 中正确设置 Http 请求标头

Angular Material 模态对话框周围的空白

Angular 2 Material - 如何居中进度微调器

如何手动延迟加载模块?

在 Angular 组件模板中添加脚本标签

如何在 Angular CLI 的构建时插入内部版本号或时间戳

declarations和entryComponents组件有什么区别