Angular 2 ng2 How to use TypeScript enum inside template?

Adam Michalski picture Adam Michalski · Jun 30, 2016 · Viewed 9.3k times · Source

I have component for multiple filters with different types. For type recognition I want to use enum with filter types. How to use enum inside template when sample below does'nt work?

I thought it should work by only importing enum inside component where I want to use this enum.

import { FilterType } from './types/FilterType';

And use it inside template like FilterType.INPUT_SELECT and FilterType.INPUT_TEXT but it does'nt work then I used variable but it also does'nt work.

<div *ngFor='let filter of filters'>
  <select *ngIf='filter.type === checkType.INPUT_SELECT'>...</select>
  <input *ngIf='filter.type === checkType.INPUT_TEXT'></input>
</div>
...
export class FiltersComponent {
  checkType: FilterType;
  @Input() filters: any[];
}
...
export enum FilterType {
  INPUT_SELECT,
  INPUT_TEXT
}

Answer

G&#252;nter Z&#246;chbauer picture Günter Zöchbauer · Jun 30, 2016

You need to assign a value to `checkType:

checkType: FilterType = FilterType;