2016-06-30 16 views
5

Ho un componente per più filtri con tipi diversi. Per il riconoscimento del tipo, voglio usare enum con i tipi di filtro. Come usare enum all'interno del template quando il campione sottostante non funziona?Angular 2 ng2 Come utilizzare enum di TypeScript all'interno del modello?

Ho pensato che dovrebbe funzionare solo importando enum all'interno del componente in cui voglio usare questo enum.

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

e utilizzarlo all'interno del modello come FilterType.INPUT_SELECT e FilterType.INPUT_TEXT ma does'nt lavoro poi ho usato variabile ma opera anche does'nt.

<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 
} 

risposta

8

è necessario assegnare un valore a `CheckType:

checkType: any = FilterType; 
+0

Tipo 'typeof FilterType' non è cedibile a digitare 'Tipo' –

+0

dispiace, ho assunto un riferimento a un enum sarebbe di tipo 'type'. Non conosco TS troppo bene, io uso solo Dart localmente. Puoi usare 'any'. Anche 'Object' dovrebbe funzionare. –

+1

Funziona ma ora lo vedo in una vista diversa, passerò questo enum come parametro. Grazie. –

Problemi correlati