angular - 创建一个指向出现在命名 <router-outlet> 中的子路由的 routerLink

标签 angular angular-router angular-routerlink

我有一些名为 <router-outlet>我可以通过 url 导航到它,如下所示: (outletname:path)

我已经能够创建一个 routerLink像这样:

<a [routerLink]="[{ outlets: { outletname : [child.attributes.href] } }]" routerLinkActive="active">{{child.attributes.text}}</a>

您可以看到我必须提供 outletname[routerLink] 。我想要的是通过变量提供导出名称。我正在尝试迭代可能使用不同名称 <router-outlet> 的子路由集合.

那么有没有办法通过像这样的变量提供导出名称..?

<a [routerLink]="['wordpress/',{ outlets: { OUTLET_NAME_AS_VAR : [child.attributes.href] } }]" routerLinkActive="active">{{child.attributes.text}}</a>

最佳答案

RouterLink 可用于单个路径,如下所示:

<a routerLink="wordpress">Link1</a>

(这里不需要方括号)

或者对于“组合”路径(您需要的),如下所示:

<a [routerLink]="['wordpress', var, 'item']">Link2</a>

其中 var 是在组件中定义的。 注意两件事:

  1. var 不在括号 {{}} 中 -> 您将收到已经提到的错误
  2. 这些项目位于列表中(您已使用该列表,但不正确)。上述代码将变为/wordpress/myValue/item
    (ts: public var = 'myValue')

{} 用于参数,因此您不需要它们,因为您只需要一个普通路径。


更新

您可以在组件内创建一个 json,如下所示:

public outletPaths = {
   outletName: 'value1'
};

你可以像这样包含它

<a [routerLink]="['wordpress/', {outlets: outletPaths}]"> Go to page </a>

希望这有帮助

关于angular - 创建一个指向出现在命名 <router-outlet> 中的子路由的 routerLink,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49173576/

相关文章:

javascript - 使用命名路由器 socket 时 Angular 7 路由失败

Angular 库路由模块在应用程序中导入时不起作用

angular - 在路由器链接上主动更改图标

angular - 为什么 RouterLink 将输入添加到当前 URL 末尾的括号中

google-maps - 在子组件中使用 SebM 谷歌地图模块显示空白 map

Angular 2 groupby或过滤管道

angular - 在第一个值发射后,主体从数组中失去观察者。 Angular RouteReuseStrategy 表编辑表单通信

Angular 2 SVG 未渲染

angular - angular i18n 应用程序的 Nginx 配置