【问题标题】:Prevent Hardcoding Routerlink防止硬编码路由器link
【发布时间】:2020-08-14 11:46:32
【问题描述】:

有没有办法防止在每个component.html中硬编码routerlink?

有这个代码

<a [routerLink]="['/home/candoy/pipeline/', this.Id]">Pipeline</a><br />
<a [routerLink]="['/home/candoy/filter/', this.Id]">Filter</a><br />

在 5+ 个不同的组件页面。

谢谢!

【问题讨论】:

    标签: angular visual-studio-code


    【解决方案1】:

    不,这就是 Angular 的用途!

    当您在 Angular 中为属性使用 [方括号] 时,您可以将组件中的任何变量传递给该参数。这意味着您还可以循环访问一组预设项。这是一个例子:

    <span *ngFor="let item of menuItems"><a [routerLink]="[item.route, this.Id]">{{item.title}}</a><br /></span>
    

    然后在你的 component.ts 中:

    menuItems = [{ route: '/home/candoy/pipeline', title: 'Pipeline'}, { route: '/home/candoy/filter', title: 'Filter'}]
    

    组件之间共享呢?

    嗯,你的菜单应该是一个独立的组件,然后你可以将菜单包含到其他组件中。

    但是 - 如果您真的需要这样做,您可以将数组放入 服务,将该服务导入您的组件(作为公共),然后从模板访问该数组。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-11-24
      • 2020-01-02
      • 1970-01-01
      • 2022-12-09
      • 1970-01-01
      • 1970-01-01
      • 2013-08-25
      相关资源
      最近更新 更多