在[routerlink]中传递枚举:Angular 7

时间:2019-10-18 10:38:46

标签: angular

我有以下枚举:

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已经在上面的代码中抱怨了? 即[routerLink]="InternalUrls.Register"

2 个答案:

答案 0 :(得分:2)

您的模板只能访问组件类中的变量。如果它不是组件类的属性,则它将在您的模板中不可用。 在您的.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>

答案 1 :(得分:0)

类似的东西

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