2016-06-30 3 views
5

Ich habe eine Komponente für mehrere Filter mit verschiedenen Typen. Für die Typerkennung möchte ich enum mit Filtertypen verwenden. Wie Enum in der Vorlage zu verwenden, wenn Beispiel unten nicht funktioniert?Angular 2 ng2 Wie wird TypeScript enum in der Vorlage verwendet?

Ich dachte, es sollte funktionieren, indem nur Enum innerhalb Komponente importieren, wo ich diese Enum verwenden möchte.

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

Und es innerhalb Vorlage verwenden wie FilterType.INPUT_SELECT und FilterType.INPUT_TEXT aber es does'nt Arbeit dann habe ich variabel, aber es auch does'nt Arbeit.

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

Antwort

8

Sie benötigen einen Wert `Checktype zuzuordnen:

checkType: any = FilterType; 
+0

Typ‚typeof Filtertype‘ist nicht übertragbar‚Typ‘eingeben –

+0

Sorry, ich nahm einen Verweis auf eine Enumeration des Typs sein würde 'Art'. Ich weiß TS nicht so gut Ich benutze nur lokal Dart. Sie können 'any' verwenden. "Objekt" sollte auch funktionieren. –

+1

Es funktioniert, aber jetzt sehe ich es in anderer Ansicht, ich werde diese Enum als Parameter übergeben. Vielen Dank. –

Verwandte Themen