创建一个routerLink链接到出现在命名<router-outlet>中的子路由

时间:2018-03-08 12:51:37

标签: angular angular-router angular-routerlink

我有一些名为<router-outlet>,我可以通过网址导航到(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>

1 个答案:

答案 0 :(得分:-1)

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

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

(你不需要这里的方括号)

或者#34;撰写&#34;路径(你需要的),像这样:

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

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

  1. var不在括号{{}}中 - &gt;你会得到你已经提到的错误
  2. 这些项目位于列表中(您已使用但未正确使用)。上面提到的代码将成为/ wordpress / myValue / item
    (ts:public var =&#39; myValue&#39;)
  3. {}用于参数,所以你不需要它们,因为你只需要一条正常路径。

    <强>更新

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

    public outletPaths = {
       outletName: 'value1'
    };
    

    你可以像

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

    希望这有帮助