我在java中有一个枚举
public enum myEnum{
enum1("enumDisplayVal1"), enum2("enumDisplayVal2")
myEnum(String displayValue) { this.displayValue = displayValue;}
private String displayValue;
public String getDisplayValue(){return displayValue}
}
在Angular js中,我使用枚举创建一个选择下拉列表。
<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()
答案 0 :(得分:0)
这就是我最终要做的事情。创建了枚举值()的映射,如此,
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>
解决了具有单独的显示名称和不同值的问题。
答案 1 :(得分:0)
试试这个:
import com.fasterxml.jackson.annotation.JsonValue;
.....
@JsonValue
public String getDisplayValue(){return displayValue}