1

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

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

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

你可以看到我必须提供outletnamein [routerLink]。我想要的是通过变量提供插座名称。我正在尝试遍历可能使用不同命名的子路由集合<router-outlet>

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

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

1 回答 1

0

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>

希望这可以帮助

于 2018-03-08T13:29:33.427 回答