在angular js的select下拉菜单中访问枚举属性



我在java中有一个像这样的enum

public enum myEnum{
   enum1("enumDisplayVal1"), enum2("enumDisplayVal2")
   myEnum(String displayValue) { this.displayValue = displayValue;}
   private String displayValue;
   public String getDisplayValue(){return displayValue}
}
在Angular js中,我用枚举创建了一个select下拉列表。
<select class="multiselect" multiple="multiple" id="enumDropDown"
    data-ng-change="update()"
    data-ng-options="e for e in myEnumValues"
    data-ng-model="selectedEnum">
    <option value="">All</option>
  </select>

下拉列表显示enum1、enum2等值,它们是枚举的实际值。我怎样才能使它在选择下拉列表中显示枚举的"displayValue"属性呢?

我使用myEnum.values()

将enum的值发送给angular js

这就是我最后所做的。创建枚举值()的映射,如下所示

 Arrays.stream(myEnum.values()).collect(toMap(i -> i.name(), i -> i.getDisplayValue())

在Angular js端:

 <select class="multiselect"  data-ng-change="update()"
                data-ng-options="key as value for (key, value) in myEnumValues"
                data-ng-model="selectedEnum">
                <option value="">All</option>
   </select>

解决了单独的显示名称和不同的值的问题。

试试这个:

 import com.fasterxml.jackson.annotation.JsonValue;
.....
 @JsonValue
 public String getDisplayValue(){return displayValue}

最新更新