Я борюсь с привязкой класса enum к оператору SELECT.
Данное определение TypeScript:
enum SearchCriteria {
expensive = 0,
cheap = 1,
interesting = 2,
newest = 3
}
и использование:
<div id="searchResultSort">
{{'sort' | translate}}:
<select
ng-model=" options.selectedCriteria">
<option value="0"> {{'sortByExpensive' | translate}}</option>
<option value="1"> {{'sortByCheap' | translate}}</option>
<option value="2"> {{'sortByInteresting' | translate}}</option>
<option value="3"> {{'sortByNewest' | translate}}</option>
</select>
</div>
Теперь есть несколько проблем с этим кодом:
1) Значения Enum жестко закодированы
2) Функциональность значения по умолчанию не работает - я отследил эту ошибку до того, как angularjs обрабатывает этот сценарий. Он использует сравнение ===, таким образом, "0"!== 0. Исходное значение ng-модели не задано при выборе
Я бы не отказался решить эту проблему, создав в контроллере новый массив с двумя свойствами: {translatedVal, enumId}.
Проблема в том, как мне сохранить синхронизацию этого «translatedVal» с реальным переводом?
sortingOptions: [
{
val: SuperSearch.Repository.Model.SearchCriteria.cheap,
translation: bindAndInterpolateLanguage('languageKey')
},
Использование углового перевода.
ng-options
(docs.angularjs.org/api/ng/directive/select) вместо этого? Это даст вам возможность напрямую привязывать значения к числам (1 против 1) - person jlb   schedule 20.02.2014