角度js中的访问枚举属性选择下拉列表

时间:2016-11-14 16:31:17

标签: javascript java angularjs enums

我在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()

将枚举值发送到角度js

2 个答案:

答案 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}