将enum的值发送给angular js
我在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()
这就是我最后所做的。创建枚举值()的映射,如下所示
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}