我正在努力将枚举类绑定到 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) 枚举值是硬编码的
2)默认值功能不起作用 - 我将此错误跟踪到 angularjs 处理这种情况的方式。它使用比较 === 因此“0”!== 0。 初始 ng-model 值未在选择中设置
我不介意通过在具有两个属性的控制器中创建新数组来解决这个问题:{translatedVal, enumId}。
问题是,我如何让这个“translatedVal”与真正的翻译保持同步?
sortingOptions: [
{
val: SuperSearch.Repository.Model.SearchCriteria.cheap,
translation: bindAndInterpolateLanguage('languageKey')
},
使用角度平移。