As an alternative to @Eric Lease's decorator, which unfortunately doesn't work using --aot
(and thus --prod
) builds, I resorted to using a service which exposes all my application's enums. Just need to publicly inject that into each component which requires it, under an easy name, after which you can access the enums in your views. E.g.:
Service
import { Injectable } from '@angular/core';
import { MyEnumType } from './app.enums';
@Injectable()
export class EnumsService {
MyEnumType = MyEnumType;
// ...
}
Don't forget to include it in your module's provider list.
Component class
export class MyComponent {
constructor(public enums: EnumsService) {}
@Input() public someProperty: MyEnumType;
// ...
}
Component html
<div *ngIf="someProperty === enums.MyEnumType.SomeValue">Some property has some valueSomeValue">Match!</div>