Новое для angular и typescript.
У меня есть typescript enum следующим образом
public enum MyEnum{
A = 0,
B = 1,
C = 2
}
Переменная scope as -
$scope.myLetter: MyEnum = MyEnum.B;
Каков правильный способ проверки перечисления?
Вариант 1: Сравните целочисленное значение перечисления на странице html -
<div ng-class="{classA: myLetter === 0, classB: myLetter === 1, classC: myLetter === 2}">Test panel</div>
Вариант 2: Получить имя класса из метода области управления
$scope.getClass(value: myLetter): string{
if(value === MyEnum.A)
return 'classA';
if(value === MyEnum.B)
return 'classB';
if(value === MyEnum.C)
return 'classC';
}
И иметь элемент html as -
<div ng-class='getClass(myLetter)'>Test panel</div>
Вариант 3: ответ, заданный 'RyanNerd', в Angular.js и ng-switch-when - emulating enum
Для меня предпочтительнее вариант 2, остальные опции имеют проверки в значении ng-class как строку, которая не даст нам статического типа принудительного применения. Поделитесь своими взглядами или любым другим лучшим вариантом, если у вас есть.