首页 > 解决方案 > 在 [routerlink] 中传递一个枚举:Angular 7

问题描述

我有以下枚举:

export enum InternalUrls {
  Login = '/login',
  Register = '/register'
}

...在我Component的 html 中,我有以下内容:

<div class="forgot-phone text-right f-right">
    <a [routerLink]="InternalUrls.Register" class="text-right f-w-600"> Don't have an account? <i class="text-c-blue">Register</i></a>
</div>

我想在一个地方管理我的所有链接。我该怎么做,因为我的 IDE 已经在抱怨上面的代码了?IE[routerLink]="InternalUrls.Register"

标签: angular

解决方案


您的模板只能访问组件类中的变量。如果它不是组件类的属性,则它在您的模板中将不可用。在你的.component.ts

export enum InternalUrls {
    Login = '/login',
    Register = '/register'
}
@Component({
  ...
})
export class MyComponent {
    internalUrls = InternalUrls;
    ....
}

在您的模板中:

  <div class="forgot-phone text-right f-right">
      <a [routerLink]="internalUrls.Register" class="text-right f-w-600"> 
          Don't have an account? 
          <i class="text-c-blue">Register</i>
      </a>
   </div>

推荐阅读