2017-09-20 2 views
1

Hallo Ich versuche, eine bedingte Klasse mit einem Enum zu verwenden. Ich habe Enums in HTML zuvor mit ngSwitchCase verwendet und habe den gleichen Fehler, den ich jetzt bekomme. Wenn ich eine Eigenschaft mit der Bezeichnung enum hinzufügen und sie dieser enum zuweisen würde, würde sie funktionieren.Angular 2 enum mit ngClass

Arbeitsbeispiel:

    <ng-container *ngFor="let column of columns" [ngSwitch]="column.dataType"> 
        <td *ngSwitchCase="DataType.Text">{{getPropertyValue(row,column.propertyName)}}</td> 
        <td *ngSwitchCase="DataType.Date">date</td> 
        <td *ngSwitchCase="DataType.Number">number</td> 
        <td *ngSwitchDefault>default</td> 
       </ng-container> 

ts

private DataType = DataType; 

nicht funktioniert:

  <span *ngClass="(column.sortType === SortType.Ascending)? 'privilege-grid-sortasc': (column.sortType === SortType.Descending)?'privilege-grid-sortdesc':'privilege-grid-sortnone'"></span> 

Ich habeauch versucht,

ts

private SortType = SortType; 

Fehlermeldung:

nicht Eigentum 'Aufsteigend' lesen kann undefinierter

Antwort

1

Ich denke, Ihr Problem woanders liegen. Ich neu erstellt Ihr Szenario mit den Tasten [ngClass] mit einer ENUM-Bindung und es funktioniert gut für mich:

[ngClass] ="{'class-name': var === enum,...}" 

Ist Ihre Vorlage im zweiten Fall auf einer separaten HTML-Datei und nicht im ersten Fall? Ich hatte Probleme, wo eine private Variable in meiner Komponentendatei von der Vorlagendatei nicht gelesen werden kann.

+0

ist es in einer separaten HTML-Datei. – 3xGuy

+0

das Problem war, dass es privat ist. – 3xGuy

Verwandte Themen